diff --git a/dist/js/example/job.json b/dist/js/example/job.json index 443f1b8f8..94f3afb03 100644 --- a/dist/js/example/job.json +++ b/dist/js/example/job.json @@ -81,6 +81,7 @@ "shortName": "qe", "summary": "Quantum Espresso", "version": "5.1.1", + "build": "GNU", "hasAdvancedComputeOptions": true }, "model": { @@ -105,6 +106,7 @@ "shortName": "qe", "summary": "Quantum Espresso", "version": "5.1.1", + "build": "GNU", "hasAdvancedComputeOptions": true }, "compute": null, @@ -135,14 +137,32 @@ "templateId": "dJ7HYz5pQ4AuN5qc9" } ], - "name": "pw_scf" + "name": "pw_scf", + "postProcessors": [], + "preProcessors": [], + "monitors": [], + "results": [] }, "flowchartId": "execution", "head": true, "input": [ { - "content": "K_POINTS automatic\n2 2 2 0 0 0", - "name": "pw_scf.in" + "template": { + "applicationName": "espresso", + "applicationVersions": [ + "6.0" + ], + "content": "K_POINTS automatic\n{{nkx}} {{nky}} {{nkz}} 0 0 0", + "contextProviders": [ + { + "name": "KGridManagerMixin" + } + ], + "executableName": "pw.x", + "name": "kpoints_grid" + }, + "rendered": "K_POINTS automatic\n2 2 2 0 0 0", + "isManuallyChanged": false } ], "monitors": [ @@ -176,7 +196,11 @@ "_id": "LCthJ6E2QabYCZqf4", "flowchartId": "05c362dc27ff1bb98d16fd60", "type": "subworkflow", - "name": "subworkflow unit" + "name": "subworkflow unit", + "preProcessors": [], + "postProcessors": [], + "monitors": [], + "results": [] } ] } diff --git a/dist/js/example/software/application.json b/dist/js/example/software/application.json index 067dd5610..edaf50266 100644 --- a/dist/js/example/software/application.json +++ b/dist/js/example/software/application.json @@ -3,5 +3,6 @@ "shortName": "qe", "summary": "Quantum Espresso", "version": "5.1.1", + "build": "GNU", "hasAdvancedComputeOptions": true } \ No newline at end of file diff --git a/dist/js/example/software/flavor.json b/dist/js/example/software/flavor.json index 1798f9caf..f61853ed6 100644 --- a/dist/js/example/software/flavor.json +++ b/dist/js/example/software/flavor.json @@ -5,5 +5,9 @@ "templateId": "dJ7HYz5pQ4AuN5qc9" } ], - "name": "pw_scf" + "name": "pw_scf", + "postProcessors": [], + "preProcessors": [], + "monitors": [], + "results": [] } \ No newline at end of file diff --git a/dist/js/example/software/template.json b/dist/js/example/software/template.json index d5bfec4d4..7f0ddcde3 100644 --- a/dist/js/example/software/template.json +++ b/dist/js/example/software/template.json @@ -4,7 +4,6 @@ "6.0" ], "content": "K_POINTS automatic\n{{nkx}} {{nky}} {{nkz}} 0 0 0", - "rendered": "K_POINTS automatic\n10 10 10 0 0 0", "contextProviders": [ { "name": "KGridManagerMixin" diff --git a/dist/js/example/software_directory/modeling/espresso.json b/dist/js/example/software_directory/modeling/espresso.json index dc55ff4d4..fa7db08bd 100644 --- a/dist/js/example/software_directory/modeling/espresso.json +++ b/dist/js/example/software_directory/modeling/espresso.json @@ -2,5 +2,6 @@ "name": "espresso", "shortName": "qe", "summary": "Quantum Espresso", - "version": "7.2" + "version": "7.2", + "build": "GNU" } \ No newline at end of file diff --git a/dist/js/example/software_directory/modeling/nwchem.json b/dist/js/example/software_directory/modeling/nwchem.json index 0d3cae909..a6ee6ddcf 100644 --- a/dist/js/example/software_directory/modeling/nwchem.json +++ b/dist/js/example/software_directory/modeling/nwchem.json @@ -1,6 +1,8 @@ { "name": "NWChem", "summary": "NWChem: a comprehensive and scalable open-source solution for large scale molecular simulations", + "shortName": "nwchem", "version": "6.6", - "exec": "nwchem" + "exec": "nwchem", + "build": "GNU" } \ No newline at end of file diff --git a/dist/js/example/software_directory/modeling/unit/execution.json b/dist/js/example/software_directory/modeling/unit/execution.json index a26ec3025..eb437d1c9 100644 --- a/dist/js/example/software_directory/modeling/unit/execution.json +++ b/dist/js/example/software_directory/modeling/unit/execution.json @@ -3,28 +3,36 @@ "name": "espresso", "shortName": "qe", "summary": "Quantum Espresso", - "version": "7.2" + "version": "7.2", + "build": "GNU" }, "flowchartId": "modeling", "head": true, "input": [ { - "applicationName": "espresso", - "applicationVersions": [ - "6.0" - ], - "content": "K_POINTS automatic\n{{nkx}} {{nky}} {{nkz}} 0 0 0", - "rendered": "K_POINTS automatic\n10 10 10 0 0 0", - "contextProviders": [ - { - "name": "KGridManagerMixin" - } - ], - "executableName": "pw.x", - "name": "kpoints_grid" + "template": { + "applicationName": "espresso", + "applicationVersions": [ + "6.0" + ], + "content": "K_POINTS automatic\n{{nkx}} {{nky}} {{nkz}} 0 0 0", + "contextProviders": [ + { + "name": "KGridManagerMixin" + } + ], + "executableName": "pw.x", + "name": "kpoints_grid" + }, + "rendered": "K_POINTS automatic\n2 2 2 0 0 0", + "isManuallyChanged": false } ], "name": "modeling", "status": "idle", - "type": "execution" + "type": "execution", + "preProcessors": [], + "postProcessors": [], + "monitors": [], + "results": [] } \ No newline at end of file diff --git a/dist/js/example/software_directory/modeling/vasp.json b/dist/js/example/software_directory/modeling/vasp.json index e930c1e91..49101ae36 100644 --- a/dist/js/example/software_directory/modeling/vasp.json +++ b/dist/js/example/software_directory/modeling/vasp.json @@ -2,5 +2,6 @@ "name": "vasp", "shortName": "vasp", "summary": "vienna ab-initio simulation package", - "version": "5.3.5" + "version": "5.3.5", + "build": "GNU" } \ No newline at end of file diff --git a/dist/js/example/software_directory/scripting/jupyter_lab.json b/dist/js/example/software_directory/scripting/jupyter_lab.json index 835748ef4..f9625e17a 100644 --- a/dist/js/example/software_directory/scripting/jupyter_lab.json +++ b/dist/js/example/software_directory/scripting/jupyter_lab.json @@ -4,5 +4,6 @@ "name": "jupyterLab", "shortName": "jl", "summary": "Jupyter Lab", - "version": "0.33.12" + "version": "0.33.12", + "build": "GNU" } \ No newline at end of file diff --git a/dist/js/example/software_directory/scripting/python.json b/dist/js/example/software_directory/scripting/python.json index 69d7be4c7..8f2fcbc54 100644 --- a/dist/js/example/software_directory/scripting/python.json +++ b/dist/js/example/software_directory/scripting/python.json @@ -4,5 +4,6 @@ "name": "python", "shortName": "py", "summary": "Python Script", - "version": "2.7.5" + "version": "2.7.5", + "build": "GNU" } \ No newline at end of file diff --git a/dist/js/example/software_directory/scripting/shell.json b/dist/js/example/software_directory/scripting/shell.json index 09afef18f..6ba4f2d5f 100644 --- a/dist/js/example/software_directory/scripting/shell.json +++ b/dist/js/example/software_directory/scripting/shell.json @@ -4,5 +4,6 @@ "name": "shell", "shortName": "sh", "summary": "Shell Script", - "version": "4.2.46" + "version": "4.2.46", + "build": "GNU" } \ No newline at end of file diff --git a/dist/js/example/software_directory/scripting/unit/execution.json b/dist/js/example/software_directory/scripting/unit/execution.json index 3082d8255..c321d370d 100644 --- a/dist/js/example/software_directory/scripting/unit/execution.json +++ b/dist/js/example/software_directory/scripting/unit/execution.json @@ -5,29 +5,37 @@ "name": "python", "shortName": "py", "summary": "Python Script", - "version": "2.7.5" + "version": "2.7.5", + "build": "GNU" }, "compute": null, "flowchartId": "scripting", "head": true, "input": [ { - "applicationName": "espresso", - "applicationVersions": [ - "6.0" - ], - "content": "K_POINTS automatic\n{{nkx}} {{nky}} {{nkz}} 0 0 0", - "rendered": "K_POINTS automatic\n10 10 10 0 0 0", - "contextProviders": [ - { - "name": "KGridManagerMixin" - } - ], - "executableName": "pw.x", - "name": "kpoints_grid" + "template": { + "applicationName": "espresso", + "applicationVersions": [ + "6.0" + ], + "content": "K_POINTS automatic\n{{nkx}} {{nky}} {{nkz}} 0 0 0", + "contextProviders": [ + { + "name": "KGridManagerMixin" + } + ], + "executableName": "pw.x", + "name": "kpoints_grid" + }, + "rendered": "K_POINTS automatic\n2 2 2 0 0 0", + "isManuallyChanged": false } ], "name": "scripting", "status": "idle", - "type": "execution" + "type": "execution", + "preProcessors": [], + "postProcessors": [], + "monitors": [], + "results": [] } \ No newline at end of file diff --git a/dist/js/example/system/runtime_items.json b/dist/js/example/system/runtime_items.json new file mode 100644 index 000000000..e4979ba6a --- /dev/null +++ b/dist/js/example/system/runtime_items.json @@ -0,0 +1,14 @@ +{ + "preProcessors": [], + "postProcessors": [], + "monitors": [ + { + "name": "standard_output" + } + ], + "results": [ + { + "name": "atomic_forces" + } + ] +} \ No newline at end of file diff --git a/dist/js/example/workflow.json b/dist/js/example/workflow.json index 11964af8b..40ae137e5 100644 --- a/dist/js/example/workflow.json +++ b/dist/js/example/workflow.json @@ -28,6 +28,7 @@ "shortName": "qe", "summary": "Quantum Espresso", "version": "5.1.1", + "build": "GNU", "hasAdvancedComputeOptions": true }, "model": { @@ -52,6 +53,7 @@ "shortName": "qe", "summary": "Quantum Espresso", "version": "5.1.1", + "build": "GNU", "hasAdvancedComputeOptions": true }, "compute": null, @@ -82,14 +84,32 @@ "templateId": "dJ7HYz5pQ4AuN5qc9" } ], - "name": "pw_scf" + "name": "pw_scf", + "postProcessors": [], + "preProcessors": [], + "monitors": [], + "results": [] }, "flowchartId": "execution", "head": true, "input": [ { - "content": "K_POINTS automatic\n2 2 2 0 0 0", - "name": "pw_scf.in" + "template": { + "applicationName": "espresso", + "applicationVersions": [ + "6.0" + ], + "content": "K_POINTS automatic\n{{nkx}} {{nky}} {{nkz}} 0 0 0", + "contextProviders": [ + { + "name": "KGridManagerMixin" + } + ], + "executableName": "pw.x", + "name": "kpoints_grid" + }, + "rendered": "K_POINTS automatic\n2 2 2 0 0 0", + "isManuallyChanged": false } ], "monitors": [ @@ -123,7 +143,11 @@ "_id": "LCthJ6E2QabYCZqf4", "flowchartId": "05c362dc27ff1bb98d16fd60", "type": "subworkflow", - "name": "subworkflow unit" + "name": "subworkflow unit", + "preProcessors": [], + "postProcessors": [], + "monitors": [], + "results": [] } ] } \ No newline at end of file diff --git a/dist/js/example/workflow/subworkflow.json b/dist/js/example/workflow/subworkflow.json index c10f4827e..11e51115e 100644 --- a/dist/js/example/workflow/subworkflow.json +++ b/dist/js/example/workflow/subworkflow.json @@ -5,6 +5,7 @@ "shortName": "qe", "summary": "Quantum Espresso", "version": "5.1.1", + "build": "GNU", "hasAdvancedComputeOptions": true }, "model": { @@ -29,6 +30,7 @@ "shortName": "qe", "summary": "Quantum Espresso", "version": "5.1.1", + "build": "GNU", "hasAdvancedComputeOptions": true }, "compute": null, @@ -59,14 +61,32 @@ "templateId": "dJ7HYz5pQ4AuN5qc9" } ], - "name": "pw_scf" + "name": "pw_scf", + "postProcessors": [], + "preProcessors": [], + "monitors": [], + "results": [] }, "flowchartId": "execution", "head": true, "input": [ { - "content": "K_POINTS automatic\n2 2 2 0 0 0", - "name": "pw_scf.in" + "template": { + "applicationName": "espresso", + "applicationVersions": [ + "6.0" + ], + "content": "K_POINTS automatic\n{{nkx}} {{nky}} {{nkz}} 0 0 0", + "contextProviders": [ + { + "name": "KGridManagerMixin" + } + ], + "executableName": "pw.x", + "name": "kpoints_grid" + }, + "rendered": "K_POINTS automatic\n2 2 2 0 0 0", + "isManuallyChanged": false } ], "monitors": [ diff --git a/dist/js/example/workflow/unit/assignment.json b/dist/js/example/workflow/unit/assignment.json index f42d4229e..1b6f9384e 100644 --- a/dist/js/example/workflow/unit/assignment.json +++ b/dist/js/example/workflow/unit/assignment.json @@ -15,5 +15,9 @@ "operand": "N_K_x", "status": "idle", "type": "assignment", - "value": "N_K_x+N_K_y+1" + "value": "N_K_x+N_K_y+1", + "preProcessors": [], + "postProcessors": [], + "monitors": [], + "results": [] } \ No newline at end of file diff --git a/dist/js/example/workflow/unit/condition.json b/dist/js/example/workflow/unit/condition.json index 84d3d782a..dabcd88ef 100644 --- a/dist/js/example/workflow/unit/condition.json +++ b/dist/js/example/workflow/unit/condition.json @@ -18,5 +18,9 @@ "status": "idle", "then": "sample_id_4", "throwException": true, - "type": "condition" + "type": "condition", + "preProcessors": [], + "postProcessors": [], + "monitors": [], + "results": [] } \ No newline at end of file diff --git a/dist/js/example/workflow/unit/execution.json b/dist/js/example/workflow/unit/execution.json index b481cd2fd..0d905c0d9 100644 --- a/dist/js/example/workflow/unit/execution.json +++ b/dist/js/example/workflow/unit/execution.json @@ -4,6 +4,7 @@ "shortName": "qe", "summary": "Quantum Espresso", "version": "5.1.1", + "build": "GNU", "hasAdvancedComputeOptions": true }, "compute": null, @@ -34,14 +35,32 @@ "templateId": "dJ7HYz5pQ4AuN5qc9" } ], - "name": "pw_scf" + "name": "pw_scf", + "postProcessors": [], + "preProcessors": [], + "monitors": [], + "results": [] }, "flowchartId": "execution", "head": true, "input": [ { - "content": "K_POINTS automatic\n2 2 2 0 0 0", - "name": "pw_scf.in" + "template": { + "applicationName": "espresso", + "applicationVersions": [ + "6.0" + ], + "content": "K_POINTS automatic\n{{nkx}} {{nky}} {{nkz}} 0 0 0", + "contextProviders": [ + { + "name": "KGridManagerMixin" + } + ], + "executableName": "pw.x", + "name": "kpoints_grid" + }, + "rendered": "K_POINTS automatic\n2 2 2 0 0 0", + "isManuallyChanged": false } ], "monitors": [ diff --git a/dist/js/example/workflow/unit/io.json b/dist/js/example/workflow/unit/io.json index 955c73ded..db75d6f9e 100644 --- a/dist/js/example/workflow/unit/io.json +++ b/dist/js/example/workflow/unit/io.json @@ -3,39 +3,38 @@ "head": true, "input": [ { - "endpoint": "data-frame", - "endpoint_options": { - "data": { - "features": [ - "elemental_ratio:Si", - "elemental_ratio:Ge", - "ionization_potential:Ge", - "ionization_potential:Si" - ], - "ids": [ - "KuAsBRwofzGfHPWiT" - ], - "targets": [ - "band_gaps:indirect", - "band_gaps:direct" - ] - }, - "headers": { - "X-Auth-Token": "", - "X-User-Id": "" - }, - "method": "POST", - "params": { - "query": { - "formula": "SiGe" - } - } - } + "ids": [ + "KuAsBRwofzGfHPWiT" + ], + "type": "db_ids" + }, + { + "collection": "features", + "draft": false, + "type": "db_collection" + }, + { + "basename": "index.html", + "overwrite": true, + "objectData": { + "CONTAINER": "production-20160630-cluster-001", + "NAME": "/cluster-001-home/jrd101/data/jrd101-default/kernel-train-Cxmkj97aXKZeaRZov/Cxmkj97aXKZeaRZov.json", + "PROVIDER": "aws", + "REGION": "us-east-1", + "SIZE": 6582, + "TIMESTAMP": "1614217411" + }, + "filetype": "text/html", + "type": "object_storage" } ], "name": "io", "source": "api", "status": "idle", "subtype": "input", - "type": "io" + "type": "io", + "preProcessors": [], + "postProcessors": [], + "monitors": [], + "results": [] } \ No newline at end of file diff --git a/dist/js/example/workflow/unit/io/db_collection.json b/dist/js/example/workflow/unit/io/db_collection.json new file mode 100644 index 000000000..f328dcd64 --- /dev/null +++ b/dist/js/example/workflow/unit/io/db_collection.json @@ -0,0 +1,5 @@ +{ + "collection": "features", + "draft": false, + "type": "db_collection" +} \ No newline at end of file diff --git a/dist/js/example/workflow/unit/io/db_ids.json b/dist/js/example/workflow/unit/io/db_ids.json new file mode 100644 index 000000000..d2ded116d --- /dev/null +++ b/dist/js/example/workflow/unit/io/db_ids.json @@ -0,0 +1,6 @@ +{ + "ids": [ + "KuAsBRwofzGfHPWiT" + ], + "type": "db_ids" +} \ No newline at end of file diff --git a/dist/js/example/workflow/unit/io/object_storage.json b/dist/js/example/workflow/unit/io/object_storage.json index 1e1a92900..c87e1326c 100644 --- a/dist/js/example/workflow/unit/io/object_storage.json +++ b/dist/js/example/workflow/unit/io/object_storage.json @@ -9,5 +9,6 @@ "SIZE": 6582, "TIMESTAMP": "1614217411" }, - "filetype": "text/html" + "filetype": "text/html", + "type": "object_storage" } \ No newline at end of file diff --git a/dist/js/example/workflow/unit/map.json b/dist/js/example/workflow/unit/map.json index 13424664c..80af8a117 100644 --- a/dist/js/example/workflow/unit/map.json +++ b/dist/js/example/workflow/unit/map.json @@ -12,5 +12,9 @@ "name": "map", "status": "idle", "type": "map", - "workflowId": "zxjhEiaQvwWwvB3oM" + "workflowId": "zxjhEiaQvwWwvB3oM", + "preProcessors": [], + "postProcessors": [], + "monitors": [], + "results": [] } \ No newline at end of file diff --git a/dist/js/example/workflow/unit/processing.json b/dist/js/example/workflow/unit/processing.json index 2009e6738..b7b1a2bb0 100644 --- a/dist/js/example/workflow/unit/processing.json +++ b/dist/js/example/workflow/unit/processing.json @@ -9,5 +9,9 @@ "operation": "data_transformation", "operationType": "manipulation", "status": "idle", - "type": "processing" + "type": "processing", + "preProcessors": [], + "postProcessors": [], + "monitors": [], + "results": [] } \ No newline at end of file diff --git a/dist/js/example/workflow/unit/reduce.json b/dist/js/example/workflow/unit/reduce.json index 414a670f3..d61b80964 100644 --- a/dist/js/example/workflow/unit/reduce.json +++ b/dist/js/example/workflow/unit/reduce.json @@ -12,5 +12,9 @@ "mapFlowchartId": "1", "name": "reduce", "status": "idle", - "type": "reduce" + "type": "reduce", + "preProcessors": [], + "postProcessors": [], + "monitors": [], + "results": [] } \ No newline at end of file diff --git a/dist/js/schema/context_providers_directory/collinear_magnetization_context_provider.json b/dist/js/schema/context_providers_directory/collinear_magnetization_context_provider.json index 52b02f1fa..a7624a029 100644 --- a/dist/js/schema/context_providers_directory/collinear_magnetization_context_provider.json +++ b/dist/js/schema/context_providers_directory/collinear_magnetization_context_provider.json @@ -4,11 +4,21 @@ "title": "Collinear Magnetization Context Provider Schema", "description": "Set starting magnetization, can have values in the range [-1, +1].", "type": "object", + "required": [ + "startingMagnetization", + "isTotalMagnetization", + "totalMagnetization" + ], "properties": { "startingMagnetization": { "type": "array", "items": { "type": "object", + "required": [ + "atomicSpecies", + "value", + "index" + ], "properties": { "atomicSpecies": { "type": "string", @@ -19,6 +29,10 @@ "title": "Starting magnetization", "minimum": -1, "maximum": 1 + }, + "index": { + "type": "integer", + "title": "Index" } } } diff --git a/dist/js/schema/context_providers_directory/non_collinear_magnetization_context_provider.json b/dist/js/schema/context_providers_directory/non_collinear_magnetization_context_provider.json index 9507263fe..64a5a9285 100644 --- a/dist/js/schema/context_providers_directory/non_collinear_magnetization_context_provider.json +++ b/dist/js/schema/context_providers_directory/non_collinear_magnetization_context_provider.json @@ -37,6 +37,13 @@ "type": "boolean", "title": "Set arbitrary spin angle" }, + "isArbitrarySpinDirection": { + "type": "boolean", + "title": "Set arbitrary spin direction" + }, + "lforcet": { + "type": "boolean" + }, "spinAngles": { "type": "array", "items": { diff --git a/dist/js/schema/context_providers_directory/points_grid_data_provider.json b/dist/js/schema/context_providers_directory/points_grid_data_provider.json index 389b7b49b..1fdcf3a9b 100644 --- a/dist/js/schema/context_providers_directory/points_grid_data_provider.json +++ b/dist/js/schema/context_providers_directory/points_grid_data_provider.json @@ -4,6 +4,11 @@ "title": "Points Grid Data Provider Schema", "description": "3D grid with shifts for k-point or q-point sampling.", "type": "object", + "required": [ + "dimensions", + "gridMetricType", + "gridMetricValue" + ], "properties": { "dimensions": { "type": "array", diff --git a/dist/js/schema/context_providers_directory/points_path_data_provider.json b/dist/js/schema/context_providers_directory/points_path_data_provider.json index 9f9dcf7fb..2bac32fcc 100644 --- a/dist/js/schema/context_providers_directory/points_path_data_provider.json +++ b/dist/js/schema/context_providers_directory/points_path_data_provider.json @@ -7,12 +7,23 @@ "minItems": 1, "items": { "type": "object", + "required": [ + "point", + "steps", + "coordinates" + ], "properties": { "point": { "type": "string" }, "steps": { "type": "integer" + }, + "coordinates": { + "type": "array", + "items": { + "type": "number" + } } } } diff --git a/dist/js/schema/core/primitive/linked_list.json b/dist/js/schema/core/primitive/linked_list.json index 76c7fac7d..f59232e09 100644 --- a/dist/js/schema/core/primitive/linked_list.json +++ b/dist/js/schema/core/primitive/linked_list.json @@ -59,7 +59,8 @@ } }, "required": [ - "flowchartId" + "flowchartId", + "name" ], "properties": { "next": { @@ -98,7 +99,8 @@ } }, "required": [ - "flowchartId" + "flowchartId", + "name" ], "properties": { "next": { diff --git a/dist/js/schema/core/primitive/linked_list/named_node.json b/dist/js/schema/core/primitive/linked_list/named_node.json index 97f797303..0150e3a7f 100644 --- a/dist/js/schema/core/primitive/linked_list/named_node.json +++ b/dist/js/schema/core/primitive/linked_list/named_node.json @@ -17,7 +17,8 @@ } }, "required": [ - "flowchartId" + "flowchartId", + "name" ], "properties": { "next": { diff --git a/dist/js/schema/core/primitive/linked_list/named_node_in_group.json b/dist/js/schema/core/primitive/linked_list/named_node_in_group.json index 2243fc0fd..5659cfea6 100644 --- a/dist/js/schema/core/primitive/linked_list/named_node_in_group.json +++ b/dist/js/schema/core/primitive/linked_list/named_node_in_group.json @@ -17,7 +17,8 @@ } }, "required": [ - "flowchartId" + "flowchartId", + "name" ], "properties": { "next": { diff --git a/dist/js/schema/in_memory_entity/has_consistency_check_has_metadata_named_defaultable.json b/dist/js/schema/in_memory_entity/has_consistency_check_has_metadata_named_defaultable.json index b9965dcac..07b452566 100644 --- a/dist/js/schema/in_memory_entity/has_consistency_check_has_metadata_named_defaultable.json +++ b/dist/js/schema/in_memory_entity/has_consistency_check_has_metadata_named_defaultable.json @@ -3,6 +3,9 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "has consistency check has metadata named defaultable in-memory entity schema", "type": "object", + "required": [ + "name" + ], "description": "The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.", "properties": { "_id": { diff --git a/dist/js/schema/in_memory_entity/named.json b/dist/js/schema/in_memory_entity/named.json index 5ee722be1..a37ddb5c1 100644 --- a/dist/js/schema/in_memory_entity/named.json +++ b/dist/js/schema/in_memory_entity/named.json @@ -3,6 +3,9 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Named in-memory entity schema", "type": "object", + "required": [ + "name" + ], "properties": { "_id": { "description": "entity identity", diff --git a/dist/js/schema/in_memory_entity/named_defaultable.json b/dist/js/schema/in_memory_entity/named_defaultable.json index 66f2e64ca..646cf8d95 100644 --- a/dist/js/schema/in_memory_entity/named_defaultable.json +++ b/dist/js/schema/in_memory_entity/named_defaultable.json @@ -3,6 +3,9 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Named defaultable in-memory entity schema", "type": "object", + "required": [ + "name" + ], "properties": { "_id": { "description": "entity identity", diff --git a/dist/js/schema/in_memory_entity/named_defaultable_has_metadata.json b/dist/js/schema/in_memory_entity/named_defaultable_has_metadata.json index e3ff6ec59..965312ae0 100644 --- a/dist/js/schema/in_memory_entity/named_defaultable_has_metadata.json +++ b/dist/js/schema/in_memory_entity/named_defaultable_has_metadata.json @@ -3,6 +3,9 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Named defaultable has metadata in-memory entity schema", "type": "object", + "required": [ + "name" + ], "properties": { "_id": { "description": "entity identity", diff --git a/dist/js/schema/job.json b/dist/js/schema/job.json index 3efda9407..1cb3fd6ad 100644 --- a/dist/js/schema/job.json +++ b/dist/js/schema/job.json @@ -6,6 +6,7 @@ "required": [ "_project", "compute", + "name", "status", "workflow" ], @@ -15,8 +16,9 @@ "title": "workflow schema", "type": "object", "required": [ - "units", - "subworkflows" + "name", + "subworkflows", + "units" ], "properties": { "subworkflows": { @@ -24,7 +26,7 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Subworkflow", + "title": "Subworkflow Schema", "type": "object", "required": [ "application", @@ -33,6 +35,211 @@ "units" ], "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "properties": { + "description": "Array of characteristic properties calculated by this subworkflow", + "type": "array", + "items": { + "description": "property names, eg. `band_gaps`, `band_structure`", + "type": "string" + } + }, + "compute": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "compute arguments schema", + "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", + "type": "object", + "required": [ + "queue", + "nodes", + "ppn", + "timeLimit" + ], + "properties": { + "queue": { + "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", + "type": "string", + "enum": [ + "D", + "OR", + "OF", + "OFplus", + "SR", + "SF", + "SFplus", + "GPOF", + "GP2OF", + "GP4OF", + "GPSF", + "GP2SF", + "GP4SF", + "OR4", + "OR8", + "OR16", + "SR4", + "SR8", + "SR16", + "GOF", + "G4OF", + "G8OF", + "GSF", + "G4SF", + "G8SF" + ] + }, + "nodes": { + "description": "number of nodes used for the job inside the RMS.", + "type": "integer" + }, + "ppn": { + "description": "number of CPUs used for the job inside the RMS.", + "type": "integer" + }, + "timeLimit": { + "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", + "type": "string" + }, + "timeLimitType": { + "description": "Convention to use when reasoning about time limits", + "type": "string", + "default": "per single attempt", + "enum": [ + "per single attempt", + "compound" + ] + }, + "isRestartable": { + "description": "Job is allowed to restart on termination.", + "type": "boolean", + "default": true + }, + "notify": { + "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", + "type": "string" + }, + "email": { + "description": "Email address to notify about job execution.", + "type": "string" + }, + "maxCPU": { + "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", + "type": "integer" + }, + "arguments": { + "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", + "default": {}, + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "quantum espresso arguments schema", + "type": "object", + "additionalProperties": false, + "properties": { + "nimage": { + "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "npools": { + "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "nband": { + "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "ntg": { + "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "ndiag": { + "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + } + } + }, + "cluster": { + "description": "Cluster where the job is executed. Optional on create. Required on job submission.", + "type": "object", + "properties": { + "fqdn": { + "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", + "type": "string" + }, + "jid": { + "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", + "type": "string" + } + } + }, + "errors": { + "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "type": "array", + "items": { + "type": "object", + "properties": { + "domain": { + "description": "Domain of the error appearance (internal).", + "type": "string", + "enum": [ + "rupy", + "alfred", + "celim", + "webapp" + ] + }, + "reason": { + "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", + "type": "string" + }, + "message": { + "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "type": "string" + }, + "traceback": { + "description": "Full machine-readable error traceback. e.g. FileNotFound", + "type": "string" + } + } + } + }, + "excludeFilesPattern": { + "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", + "type": "string" + } + } + }, "units": { "description": "Contains the Units of the subworkflow", "type": "array", @@ -48,17 +255,176 @@ "required": [ "flowchartId", "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", "source", "subtype", "type" ], - "additionalProperties": true, "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "io", "description": "type of the unit", + "type": "string", + "const": "io" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "subtype": { "enum": [ "input", @@ -79,65 +445,46 @@ "oneOf": [ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO rest API input schema", + "title": "data IO database ids input/output schema", "type": "object", "properties": { - "endpoint": { - "description": "rest API endpoint", - "type": "string" - }, - "endpoint_options": { - "description": "rest API endpoint options", - "type": "object" + "type": { + "const": "db_ids" }, - "name": { - "description": "the name of the variable in local scope to save the data under", - "type": "string" + "ids": { + "description": "IDs of item to retrieve from db", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "endpoint", - "endpoint_options" - ], - "additionalProperties": true + "type", + "ids" + ] }, { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO database input/output schema", + "title": "data IO database collection input/output schema", "type": "object", - "oneOf": [ - { - "properties": { - "ids": { - "description": "IDs of item to retrieve from db", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "ids" - ], - "additionalProperties": true + "properties": { + "type": { + "const": "db_collection" }, - { - "properties": { - "collection": { - "description": "db collection name", - "type": "string" - }, - "draft": { - "description": "whether the result should be saved as draft", - "type": "boolean" - } - }, - "required": [ - "collection", - "draft" - ], - "additionalProperties": true + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "description": "whether the result should be saved as draft", + "type": "boolean" } + }, + "required": [ + "type", + "collection", + "draft" ] }, { @@ -145,10 +492,13 @@ "title": "object_storage io schema", "type": "object", "required": [ + "type", "objectData" ], - "additionalProperties": true, "properties": { + "type": { + "const": "object_storage" + }, "objectData": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Object Storage Container Data", @@ -199,50 +549,34 @@ } } } - ] + ], + "discriminator": { + "propertyName": "type" + } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "reduce unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "mapFlowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -255,6 +589,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -265,29 +603,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -295,29 +621,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -325,29 +639,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -355,29 +657,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -387,6 +677,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -407,26 +708,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "reduce unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "mapFlowchartId", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "reduce", "description": "type of the unit", + "type": "string", + "const": "reduce" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "mapFlowchartId": { "description": "corresponding map unit flowchart ID", "type": "string" @@ -454,48 +760,32 @@ } } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "condition unit schema", + "type": "object", + "required": [ + "else", + "flowchartId", + "input", + "maxOccurrences", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "then", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -508,6 +798,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -518,29 +812,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -548,29 +830,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -578,29 +848,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -608,29 +866,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -640,6 +886,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -660,29 +917,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "condition unit schema", - "type": "object", - "required": [ - "else", - "flowchartId", - "input", - "maxOccurrences", - "statement", - "then", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "condition", "description": "type of the unit", + "type": "string", + "const": "condition" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", "type": "string" }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "input": { "description": "Input information for condition.", "type": "array", @@ -710,62 +969,42 @@ "description": "Condition statement. e.g. 'abs(x-total_energy) < 1e-5'", "type": "string" }, - "then": { - "description": "Flowchart ID reference for `then` part of the condition.", - "type": "string" - }, - "else": { - "description": "Flowchart ID reference for `else` part of the condition.", - "type": "string" - }, - "maxOccurrences": { - "description": "Maximum occurrence of the condition, usable for loops.", - "type": "integer" - }, - "throwException": { - "description": "Throw exception on reaching to maximum occurence.", - "type": "boolean" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "then": { + "description": "Flowchart ID reference for `then` part of the condition.", "type": "string" }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "else": { + "description": "Flowchart ID reference for `else` part of the condition.", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" + "maxOccurrences": { + "description": "Maximum occurrence of the condition, usable for loops.", + "type": "integer" }, - "context": { - "type": "object" + "throwException": { + "description": "Throw exception on reaching to maximum occurence.", + "type": "boolean" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assertion unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -779,6 +1018,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -789,29 +1032,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -819,29 +1050,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -849,29 +1068,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -879,29 +1086,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -911,6 +1106,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -931,55 +1137,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "assertion unit schema", - "type": "object", - "required": [ - "flowchartId", - "name", - "statement", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "assertion", - "description": "type of the unit", - "type": "string" - }, - "statement": { - "type": "string", - "description": "The statement to be evaluated" - }, - "errorMessage": { - "type": "string", - "description": "The error message to be displayed if the assertion fails" - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assertion" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -997,8 +1162,35 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "statement": { + "type": "string", + "description": "The statement to be evaluated" + }, + "errorMessage": { + "type": "string", + "description": "The error message to be displayed if the assertion fails" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit schema (base)", + "type": "object", + "required": [ + "application", + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -1012,6 +1204,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -1022,29 +1218,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1052,29 +1236,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1082,29 +1254,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1112,29 +1272,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -1144,315 +1292,138 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { "type": "object", "required": [ - "trackedAt", - "status" - ], - "properties": { - "trackedAt": { - "type": "number" - }, - "status": { - "type": "string" - }, - "repetition": { - "type": "number" - } - } - } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit schema (base)", - "type": "object", - "required": [ - "application", - "flowchartId", - "input", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "execution", - "description": "type of the unit", - "type": "string" - }, - "application": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", - "type": "object", - "additionalProperties": true, - "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, - "_id": { - "description": "entity identity", - "type": "string" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "name": { - "description": "entity name", - "type": "string" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - } - } - }, - "executable": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "executable schema", - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "description": "The name of the executable. e.g. pw.x", - "type": "string" - }, - "applicationId": { - "description": "_ids of the application this executable belongs to", - "type": "array", - "items": { - "type": "string" - } - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "_id": { - "description": "entity identity", - "type": "string" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" } } } }, - "flavor": { + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "execution" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "flavor schema", + "title": "application schema", "type": "object", + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { - "executableId": { - "description": "_id of the executable this flavor belongs to", + "_id": { + "description": "entity identity", "type": "string" }, - "executableName": { - "description": "name of the executable this flavor belongs to", + "slug": { + "description": "entity slug", "type": "string" }, - "applicationName": { - "description": "name of the application this flavor belongs to", + "systemName": { "type": "string" }, - "input": { - "title": "execution unit input schema", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input id item schema for physics-based simulation engines", - "type": "object", - "additionalProperties": false, - "properties": { - "templateId": { - "type": "string" - }, - "templateName": { - "type": "string" - }, - "name": { - "description": "name of the resulting input file, if different than template name", - "type": "string" - } - } - } + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" }, - "supportedApplicationVersions": { - "description": "list of application versions this flavor supports", - "type": "array", - "items": { - "type": "string" - } + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + } + } + }, + "executable": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "executable schema", + "type": "object", + "required": [ + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { "_id": { "description": "entity identity", "type": "string" @@ -1483,29 +1454,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1513,29 +1472,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1543,29 +1490,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1573,344 +1508,321 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } - } - } - }, - "input": { - "description": "unit input (type to be specified by the application's execution unit)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false + }, + "applicationId": { + "description": "_ids of the application this executable belongs to", + "type": "array", + "items": { + "type": "string" + } + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + "flavor": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor schema", + "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { + } + } + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object", + "additionalProperties": false, + "properties": { + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + }, + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + } + } + } + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { "type": "string" } - ] - } - }, - "tags": { - "description": "entity tags", - "type": "array", - "items": { - "type": "string" + } } }, - "statusTrack": { + "input": { "type": "array", "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit input item schema", "type": "object", "required": [ - "trackedAt", - "status" + "rendered", + "isManuallyChanged", + "template" ], "properties": { - "trackedAt": { - "type": "number" + "template": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "template schema", + "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", + "type": "string" + } + } }, - "status": { + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" }, - "repetition": { - "type": "number" + "isManuallyChanged": { + "type": "boolean", + "default": false } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "assignment unit schema", - "type": "object", - "required": [ - "flowchartId", - "name", - "operand", - "type", - "value" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "assignment", - "description": "type of the unit", - "type": "string" }, - "input": { - "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "context": { "type": "array", "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit input schema", "type": "object", "required": [ - "scope", - "name" + "name", + "isEdited", + "data" ], "properties": { - "scope": { - "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", - "type": "string" - }, "name": { - "description": "Name of the input data. e.g. total_energy", - "type": "string" + "type": "string", + "tsType": "ContextProviderNameEnum" + }, + "isEdited": { + "type": "boolean" + }, + "data": { + "type": "object" + }, + "extraData": { + "type": "object" } } } - }, - "operand": { - "description": "Name of the global variable. e.g. 'x'", - "type": "string" - }, - "value": { - "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", - "oneOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assignment unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "operand", + "postProcessors", + "preProcessors", + "results", + "type", + "value" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -1923,6 +1835,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -1933,29 +1849,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1963,29 +1867,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1993,29 +1885,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -2023,29 +1903,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2055,6 +1923,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -2076,61 +1955,13 @@ } } }, - "scope": { - "type": "string" - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "processing unit schema", - "type": "object", - "required": [ - "flowchartId", - "inputData", - "operation", - "operationType", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "processing", - "description": "type of the unit", - "type": "string" - }, - "operation": { - "description": "Contains information about the operation used.", - "type": "string" - }, - "operationType": { - "description": "Contains information about the specific type of the operation used.", - "type": "string" - }, - "inputData": { - "description": "unit input (type to be specified by the child units)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assignment" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -2148,8 +1979,72 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "scope": { + "type": "string" + }, + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", + "type": "object", + "required": [ + "scope", + "name" + ], + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + } + } + } + }, + "operand": { + "description": "Name of the global variable. e.g. 'x'", + "type": "string" + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "oneOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "processing unit schema", + "type": "object", + "required": [ + "flowchartId", + "inputData", + "monitors", + "name", + "operation", + "operationType", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -2163,6 +2058,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -2173,29 +2072,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -2203,29 +2090,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -2233,29 +2108,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -2263,29 +2126,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2295,6 +2146,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -2315,6 +2177,41 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "processing" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "inputData": { + "description": "unit input (type to be specified by the child units)" } } } @@ -2377,34 +2274,100 @@ }, "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", + "title": "application schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + } + } + }, + "isDraft": { + "description": "Defines whether to store the results/properties extracted in this unit to properties collection", + "type": "boolean", + "default": false + } + } + } + }, + "units": { + "description": "Contains the Units of the Workflow", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit schema", + "type": "object", + "oneOf": [ + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "data IO unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "source", + "subtype", + "type" + ], "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -2429,236 +2392,142 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - } - } - }, - "isDraft": { - "description": "Defines whether to store the results/properties extracted in this unit to properties collection", - "type": "boolean", - "default": false - }, - "_id": { - "description": "subworkflow identity", - "type": "string" - }, - "name": { - "description": "Human-readable name of the subworkflow. e.g. Total-energy", - "type": "string" - }, - "properties": { - "description": "Array of characteristic properties calculated by this subworkflow", - "type": "array", - "items": { - "description": "property names, eg. `band_gaps`, `band_structure`", - "type": "string" - } - }, - "compute": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "compute arguments schema", - "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", - "type": "object", - "required": [ - "queue", - "nodes", - "ppn", - "timeLimit" - ], - "properties": { - "queue": { - "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", - "type": "string", - "enum": [ - "D", - "OR", - "OF", - "OFplus", - "SR", - "SF", - "SFplus", - "GPOF", - "GP2OF", - "GP4OF", - "GPSF", - "GP2SF", - "GP4SF", - "OR4", - "OR8", - "OR16", - "SR4", - "SR8", - "SR16", - "GOF", - "G4OF", - "G8OF", - "GSF", - "G4SF", - "G8SF" - ] - }, - "nodes": { - "description": "number of nodes used for the job inside the RMS.", - "type": "integer" - }, - "ppn": { - "description": "number of CPUs used for the job inside the RMS.", - "type": "integer" - }, - "timeLimit": { - "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", - "type": "string" - }, - "timeLimitType": { - "description": "Convention to use when reasoning about time limits", - "type": "string", - "default": "per single attempt", - "enum": [ - "per single attempt", - "compound" - ] - }, - "isRestartable": { - "description": "Job is allowed to restart on termination.", - "type": "boolean", - "default": true - }, - "notify": { - "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", - "type": "string" }, - "email": { - "description": "Email address to notify about job execution.", - "type": "string" + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } }, - "maxCPU": { - "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", - "type": "integer" + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } }, - "arguments": { - "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", - "default": {}, - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "quantum espresso arguments schema", - "type": "object", - "additionalProperties": false, - "properties": { - "nimage": { - "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "npools": { - "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "nband": { - "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "ntg": { - "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "ndiag": { - "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } } } }, - "cluster": { - "description": "Cluster where the job is executed. Optional on create. Required on job submission.", - "type": "object", - "properties": { - "fqdn": { - "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", - "type": "string" - }, - "jid": { - "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", - "type": "string" + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } } } }, - "errors": { - "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { "type": "array", "items": { "type": "object", + "required": [ + "trackedAt", + "status" + ], "properties": { - "domain": { - "description": "Domain of the error appearance (internal).", - "type": "string", - "enum": [ - "rupy", - "alfred", - "celim", - "webapp" - ] - }, - "reason": { - "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", - "type": "string" + "trackedAt": { + "type": "number" }, - "message": { - "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "status": { "type": "string" }, - "traceback": { - "description": "Full machine-readable error traceback. e.g. FileNotFound", - "type": "string" + "repetition": { + "type": "number" } } } }, - "excludeFilesPattern": { - "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", - "type": "string" - } - } - } - } - } - }, - "units": { - "description": "Contains the Units of the Workflow", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit schema", - "type": "object", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "source", - "subtype", - "type" - ], - "additionalProperties": true, - "properties": { + "isDraft": { + "type": "boolean" + }, "type": { - "const": "io", "description": "type of the unit", + "type": "string", + "const": "io" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "subtype": { "enum": [ "input", @@ -2679,65 +2548,46 @@ "oneOf": [ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO rest API input schema", + "title": "data IO database ids input/output schema", "type": "object", "properties": { - "endpoint": { - "description": "rest API endpoint", - "type": "string" - }, - "endpoint_options": { - "description": "rest API endpoint options", - "type": "object" + "type": { + "const": "db_ids" }, - "name": { - "description": "the name of the variable in local scope to save the data under", - "type": "string" + "ids": { + "description": "IDs of item to retrieve from db", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "endpoint", - "endpoint_options" - ], - "additionalProperties": true + "type", + "ids" + ] }, { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO database input/output schema", + "title": "data IO database collection input/output schema", "type": "object", - "oneOf": [ - { - "properties": { - "ids": { - "description": "IDs of item to retrieve from db", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "ids" - ], - "additionalProperties": true + "properties": { + "type": { + "const": "db_collection" }, - { - "properties": { - "collection": { - "description": "db collection name", - "type": "string" - }, - "draft": { - "description": "whether the result should be saved as draft", - "type": "boolean" - } - }, - "required": [ - "collection", - "draft" - ], - "additionalProperties": true + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "description": "whether the result should be saved as draft", + "type": "boolean" } + }, + "required": [ + "type", + "collection", + "draft" ] }, { @@ -2745,10 +2595,13 @@ "title": "object_storage io schema", "type": "object", "required": [ + "type", "objectData" ], - "additionalProperties": true, "properties": { + "type": { + "const": "object_storage" + }, "objectData": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Object Storage Container Data", @@ -2799,50 +2652,34 @@ } } } - ] + ], + "discriminator": { + "propertyName": "type" + } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "reduce unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "mapFlowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -2855,6 +2692,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -2865,29 +2706,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -2895,29 +2724,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -2925,59 +2742,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2987,6 +2780,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -3007,26 +2811,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "reduce unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "mapFlowchartId", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "reduce", "description": "type of the unit", + "type": "string", + "const": "reduce" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "mapFlowchartId": { "description": "corresponding map unit flowchart ID", "type": "string" @@ -3054,48 +2863,32 @@ } } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "condition unit schema", + "type": "object", + "required": [ + "else", + "flowchartId", + "input", + "maxOccurrences", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "then", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -3108,6 +2901,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -3118,29 +2915,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -3148,29 +2933,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -3178,29 +2951,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -3208,29 +2969,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -3240,6 +2989,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -3260,29 +3020,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "condition unit schema", - "type": "object", - "required": [ - "else", - "flowchartId", - "input", - "maxOccurrences", - "statement", - "then", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "condition", "description": "type of the unit", + "type": "string", + "const": "condition" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "input": { "description": "Input information for condition.", "type": "array", @@ -3325,48 +3087,28 @@ "throwException": { "description": "Throw exception on reaching to maximum occurence.", "type": "boolean" - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assertion unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -3379,6 +3121,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -3389,29 +3135,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -3419,29 +3153,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -3449,29 +3171,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -3479,29 +3189,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -3511,6 +3209,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -3531,55 +3240,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "assertion unit schema", - "type": "object", - "required": [ - "flowchartId", - "name", - "statement", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "assertion", - "description": "type of the unit", - "type": "string" - }, - "statement": { - "type": "string", - "description": "The statement to be evaluated" - }, - "errorMessage": { - "type": "string", - "description": "The error message to be displayed if the assertion fails" - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assertion" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -3597,8 +3265,35 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "statement": { + "type": "string", + "description": "The statement to be evaluated" + }, + "errorMessage": { + "type": "string", + "description": "The error message to be displayed if the assertion fails" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit schema (base)", + "type": "object", + "required": [ + "application", + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -3612,6 +3307,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -3622,29 +3321,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -3652,29 +3339,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -3682,29 +3357,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -3712,29 +3375,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -3744,6 +3395,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -3764,56 +3426,43 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit schema (base)", - "type": "object", - "required": [ - "application", - "flowchartId", - "input", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "execution", "description": "type of the unit", + "type": "string", + "const": "execution" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", + "title": "application schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -3838,6 +3487,30 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } }, @@ -3846,24 +3519,14 @@ "title": "executable schema", "type": "object", "required": [ - "name" + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" ], "properties": { - "name": { - "description": "The name of the executable. e.g. pw.x", - "type": "string" - }, - "applicationId": { - "description": "_ids of the application this executable belongs to", - "type": "array", - "items": { - "type": "string" - } - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -3880,6 +3543,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -3890,29 +3557,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -3920,29 +3575,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -3950,109 +3593,64 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } - } - } - }, - "flavor": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "flavor schema", - "type": "object", - "properties": { - "executableId": { - "description": "_id of the executable this flavor belongs to", - "type": "string" - }, - "executableName": { - "description": "name of the executable this flavor belongs to", - "type": "string" }, - "applicationName": { - "description": "name of the application this flavor belongs to", - "type": "string" - }, - "input": { - "title": "execution unit input schema", + "results": { + "description": "names of the results for this calculation", "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input id item schema for physics-based simulation engines", + "title": "runtime item name object schema", "type": "object", - "additionalProperties": false, + "required": [ + "name" + ], "properties": { - "templateId": { - "type": "string" - }, - "templateName": { - "type": "string" - }, "name": { - "description": "name of the resulting input file, if different than template name", + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } } } }, - "supportedApplicationVersions": { - "description": "list of application versions this flavor supports", + "applicationId": { + "description": "_ids of the application this executable belongs to", "type": "array", "items": { "type": "string" } }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } + }, + "flavor": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor schema", + "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { "_id": { "description": "entity identity", "type": "string" @@ -4083,29 +3681,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -4113,29 +3699,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -4143,29 +3717,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -4173,238 +3735,171 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - } - } - }, - "input": { - "description": "unit input (type to be specified by the application's execution unit)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, "required": [ "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "execution unit input id item schema for physics-based simulation engines", "type": "object", + "additionalProperties": false, "properties": { + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "name of the resulting input file, if different than template name", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + } + } + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { "type": "string" } - ] + } } }, - "results": { - "description": "names of the results for this calculation", + "input": { "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + "title": "execution unit input item schema", + "type": "object", + "required": [ + "rendered", + "isManuallyChanged", + "template" + ], + "properties": { + "template": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "template schema", "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", "type": "string" } - }, - "required": [ - "name" - ] + } }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" + }, + "isManuallyChanged": { + "type": "boolean", + "default": false } - ] - } - }, - "tags": { - "description": "entity tags", - "type": "array", - "items": { - "type": "string" + } } }, - "statusTrack": { + "context": { "type": "array", "items": { "type": "object", "required": [ - "trackedAt", - "status" + "name", + "isEdited", + "data" ], "properties": { - "trackedAt": { - "type": "number" + "name": { + "type": "string", + "tsType": "ContextProviderNameEnum" }, - "status": { - "type": "string" + "isEdited": { + "type": "boolean" }, - "repetition": { - "type": "number" + "data": { + "type": "object" + }, + "extraData": { + "type": "object" } } } @@ -4417,100 +3912,20 @@ "type": "object", "required": [ "flowchartId", + "monitors", "name", "operand", + "postProcessors", + "preProcessors", + "results", "type", "value" ], - "additionalProperties": true, "properties": { - "type": { - "const": "assignment", - "description": "type of the unit", - "type": "string" - }, - "input": { - "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit input schema", - "type": "object", - "required": [ - "scope", - "name" - ], - "properties": { - "scope": { - "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", - "type": "string" - }, - "name": { - "description": "Name of the input data. e.g. total_energy", - "type": "string" - } - } - } - }, - "operand": { - "description": "Name of the global variable. e.g. 'x'", - "type": "string" - }, - "value": { - "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", - "oneOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -4523,6 +3938,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -4533,59 +3952,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -4593,29 +3988,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -4623,29 +4006,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -4655,6 +4026,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -4676,61 +4058,13 @@ } } }, - "scope": { - "type": "string" - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "processing unit schema", - "type": "object", - "required": [ - "flowchartId", - "inputData", - "operation", - "operationType", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "processing", - "description": "type of the unit", - "type": "string" - }, - "operation": { - "description": "Contains information about the operation used.", - "type": "string" - }, - "operationType": { - "description": "Contains information about the specific type of the operation used.", - "type": "string" - }, - "inputData": { - "description": "unit input (type to be specified by the child units)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assignment" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -4748,8 +4082,72 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "scope": { + "type": "string" + }, + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", + "type": "object", + "required": [ + "scope", + "name" + ], + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + } + } + } + }, + "operand": { + "description": "Name of the global variable. e.g. 'x'", + "type": "string" + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "oneOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "processing unit schema", + "type": "object", + "required": [ + "flowchartId", + "inputData", + "monitors", + "name", + "operation", + "operationType", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -4763,6 +4161,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -4773,29 +4175,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -4803,59 +4193,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -4863,29 +4229,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -4895,6 +4249,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -4915,92 +4280,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "map unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "type", - "workflowId" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "map", - "description": "type of the unit", - "type": "string" - }, - "workflowId": { - "description": "Id of workflow to run inside map", - "type": "string" - }, - "input": { - "description": "Input information for map.", - "type": "object", - "required": [ - "target" - ], - "properties": { - "target": { - "description": "Name of the target variable to substitute using the values below. e.g. K_POINTS", - "type": "string" - }, - "scope": { - "description": "Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.", - "type": "string" - }, - "name": { - "description": "Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.", - "type": "string" - }, - "values": { - "description": "Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution", - "type": "array", - "items": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "object" - } - ] - } - }, - "useValues": { - "type": "boolean" - } - } - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "processing" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -5018,8 +4305,38 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "inputData": { + "description": "unit input (type to be specified by the child units)" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "map unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type", + "workflowId" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -5033,6 +4350,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -5043,29 +4364,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -5073,29 +4382,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -5103,59 +4400,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -5165,6 +4438,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -5185,45 +4469,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "subworkflow unit schema", - "type": "object", - "required": [ - "type", - "flowchartId" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "subworkflow", - "description": "type of the unit", - "type": "string" - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "map" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -5241,8 +4494,70 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "workflowId": { + "description": "Id of workflow to run inside map", + "type": "string" + }, + "input": { + "description": "Input information for map.", + "type": "object", + "required": [ + "target" + ], + "properties": { + "target": { + "description": "Name of the target variable to substitute using the values below. e.g. K_POINTS", + "type": "string" + }, + "scope": { + "description": "Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.", + "type": "string" + }, + "name": { + "description": "Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.", + "type": "string" + }, + "values": { + "description": "Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution", + "type": "array", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + } + ] + } + }, + "useValues": { + "type": "boolean" + } + } + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "subworkflow unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -5256,6 +4571,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -5266,29 +4585,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -5296,29 +4603,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -5326,29 +4621,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -5356,29 +4639,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -5388,6 +4659,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -5408,6 +4690,30 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "subworkflow" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" } } } diff --git a/dist/js/schema/job/base.json b/dist/js/schema/job/base.json index a8c9d7483..9a9f00134 100644 --- a/dist/js/schema/job/base.json +++ b/dist/js/schema/job/base.json @@ -4,9 +4,10 @@ "title": "job base schema", "type": "object", "required": [ - "status", + "_project", "compute", - "_project" + "name", + "status" ], "properties": { "rmsId": { diff --git a/dist/js/schema/material.json b/dist/js/schema/material.json index ac3d1b119..402a5ac77 100644 --- a/dist/js/schema/material.json +++ b/dist/js/schema/material.json @@ -5,7 +5,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -731,6 +732,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -755,9 +784,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } \ No newline at end of file diff --git a/dist/js/schema/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json b/dist/js/schema/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json index b9fe436a9..77767309f 100644 --- a/dist/js/schema/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json +++ b/dist/js/schema/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json @@ -223,7 +223,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -949,6 +950,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -973,9 +1002,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -1021,7 +1047,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1747,6 +1774,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1771,9 +1826,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -2070,7 +2122,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -2796,6 +2849,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -2820,9 +2901,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -2868,7 +2946,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -3594,6 +3673,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -3618,9 +3725,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -3876,7 +3980,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -4602,6 +4707,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -4626,9 +4759,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -4674,7 +4804,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -5400,6 +5531,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -5424,9 +5583,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -5723,7 +5879,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -6449,6 +6606,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -6473,9 +6658,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -6521,7 +6703,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -7247,6 +7430,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -7271,9 +7482,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -7356,7 +7564,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -8082,6 +8291,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -8106,9 +8343,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } diff --git a/dist/js/schema/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.json b/dist/js/schema/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.json index 77cbd94df..01f621e46 100644 --- a/dist/js/schema/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.json +++ b/dist/js/schema/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.json @@ -223,7 +223,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -949,6 +950,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -973,9 +1002,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -1021,7 +1047,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1747,6 +1774,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1771,9 +1826,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -2070,7 +2122,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -2796,6 +2849,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -2820,9 +2901,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -2868,7 +2946,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -3594,6 +3673,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -3618,9 +3725,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -3876,7 +3980,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -4602,6 +4707,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -4626,9 +4759,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -4674,7 +4804,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -5400,6 +5531,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -5424,9 +5583,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -5723,7 +5879,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -6449,6 +6606,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -6473,9 +6658,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -6521,7 +6703,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -7247,6 +7430,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -7271,9 +7482,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -7356,7 +7564,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -8082,6 +8291,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -8106,9 +8343,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } diff --git a/dist/js/schema/materials_category/defective_structures/two_dimensional/adatom/configuration.json b/dist/js/schema/materials_category/defective_structures/two_dimensional/adatom/configuration.json index df4724ae1..78d5e0886 100644 --- a/dist/js/schema/materials_category/defective_structures/two_dimensional/adatom/configuration.json +++ b/dist/js/schema/materials_category/defective_structures/two_dimensional/adatom/configuration.json @@ -220,7 +220,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -946,6 +947,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -970,9 +999,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -1018,7 +1044,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1744,6 +1771,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1768,9 +1823,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -1834,7 +1886,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -2560,6 +2613,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -2584,9 +2665,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -2793,7 +2871,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -3519,6 +3598,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -3543,9 +3650,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } diff --git a/dist/js/schema/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.json b/dist/js/schema/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.json index 0146b0209..492ac47eb 100644 --- a/dist/js/schema/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.json +++ b/dist/js/schema/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.json @@ -235,7 +235,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -961,6 +962,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -985,9 +1014,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -1033,7 +1059,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1759,6 +1786,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1783,9 +1838,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -2082,7 +2134,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -2808,6 +2861,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -2832,9 +2913,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -2880,7 +2958,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -3606,6 +3685,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -3630,9 +3737,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -3888,7 +3992,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -4614,6 +4719,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -4638,9 +4771,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -4686,7 +4816,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -5412,6 +5543,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -5436,9 +5595,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -5735,7 +5891,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -6461,6 +6618,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -6485,9 +6670,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -6533,7 +6715,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -7259,6 +7442,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -7283,9 +7494,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -7368,7 +7576,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -8094,6 +8303,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -8118,9 +8355,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } diff --git a/dist/js/schema/materials_category/defective_structures/two_dimensional/island/configuration.json b/dist/js/schema/materials_category/defective_structures/two_dimensional/island/configuration.json index f22774827..b4a225d35 100644 --- a/dist/js/schema/materials_category/defective_structures/two_dimensional/island/configuration.json +++ b/dist/js/schema/materials_category/defective_structures/two_dimensional/island/configuration.json @@ -220,7 +220,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -946,6 +947,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -970,9 +999,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -1018,7 +1044,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1744,6 +1771,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1768,9 +1823,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -2037,7 +2089,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -2763,6 +2816,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -2787,9 +2868,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -2835,7 +2913,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -3561,6 +3640,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -3585,9 +3692,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -3649,7 +3753,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -4375,6 +4480,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -4399,9 +4532,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -4693,7 +4823,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -5419,6 +5550,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -5443,9 +5602,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } diff --git a/dist/js/schema/materials_category/defective_structures/two_dimensional/terrace/configuration.json b/dist/js/schema/materials_category/defective_structures/two_dimensional/terrace/configuration.json index 4592597b1..cbc4d4e3f 100644 --- a/dist/js/schema/materials_category/defective_structures/two_dimensional/terrace/configuration.json +++ b/dist/js/schema/materials_category/defective_structures/two_dimensional/terrace/configuration.json @@ -221,7 +221,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -947,6 +948,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -971,9 +1000,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -1019,7 +1045,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1745,6 +1772,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1769,9 +1824,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -2038,7 +2090,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -2764,6 +2817,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -2788,9 +2869,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -2836,7 +2914,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -3562,6 +3641,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -3586,9 +3693,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -3650,7 +3754,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -4376,6 +4481,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -4400,9 +4533,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -4694,7 +4824,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -5420,6 +5551,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -5444,9 +5603,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } diff --git a/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.json b/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.json index d50a2d9ca..90ddafcb5 100644 --- a/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.json +++ b/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.json @@ -20,7 +20,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -746,6 +747,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -770,9 +799,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } diff --git a/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.json b/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.json index cd70245e8..83b67f815 100644 --- a/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.json +++ b/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.json @@ -20,7 +20,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -746,6 +747,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -770,9 +799,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -794,7 +820,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1520,6 +1547,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1544,9 +1599,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.json b/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.json index c6cf67b34..63de8c9bb 100644 --- a/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.json +++ b/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.json @@ -20,7 +20,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -746,6 +747,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -770,9 +799,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -794,7 +820,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1520,6 +1547,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1544,9 +1599,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.json b/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.json index ea74d1914..50d210096 100644 --- a/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.json +++ b/dist/js/schema/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.json @@ -20,7 +20,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -746,6 +747,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -770,9 +799,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category/pristine_structures/three_dimensional/ideal_crystal.json b/dist/js/schema/materials_category/pristine_structures/three_dimensional/ideal_crystal.json index d836b0d5d..f881b6223 100644 --- a/dist/js/schema/materials_category/pristine_structures/three_dimensional/ideal_crystal.json +++ b/dist/js/schema/materials_category/pristine_structures/three_dimensional/ideal_crystal.json @@ -6,7 +6,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -732,6 +733,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -756,9 +785,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } \ No newline at end of file diff --git a/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanoribbon.json b/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanoribbon.json index a2540a612..34a8fc7a4 100644 --- a/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanoribbon.json +++ b/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanoribbon.json @@ -372,7 +372,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1098,6 +1099,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1122,9 +1151,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -1170,7 +1196,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1896,6 +1923,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1920,9 +1975,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -2003,7 +2055,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -2729,6 +2782,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -2753,9 +2834,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } diff --git a/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanotape.json b/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanotape.json index e74a7aa84..67e00827b 100644 --- a/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanotape.json +++ b/dist/js/schema/materials_category/pristine_structures/two_dimensional/nanotape.json @@ -357,7 +357,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1083,6 +1084,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1107,9 +1136,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -1155,7 +1181,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1881,6 +1908,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1905,9 +1960,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } diff --git a/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab.json b/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab.json index 96802a36e..7225312c5 100644 --- a/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab.json +++ b/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab.json @@ -205,7 +205,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -931,6 +932,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -955,9 +984,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -1003,7 +1029,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1729,6 +1756,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1753,9 +1808,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } diff --git a/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.json b/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.json index 65ede66f2..e7dc938c6 100644 --- a/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.json +++ b/dist/js/schema/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.json @@ -250,7 +250,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -976,6 +977,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1000,9 +1029,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -1048,7 +1074,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1774,6 +1801,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1798,9 +1853,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } diff --git a/dist/js/schema/materials_category/processed_structures/two_dimensional/passivation/configuration.json b/dist/js/schema/materials_category/processed_structures/two_dimensional/passivation/configuration.json index 8a4dd5985..774c6b19c 100644 --- a/dist/js/schema/materials_category/processed_structures/two_dimensional/passivation/configuration.json +++ b/dist/js/schema/materials_category/processed_structures/two_dimensional/passivation/configuration.json @@ -21,7 +21,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -747,6 +748,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -771,9 +800,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -795,7 +821,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1521,6 +1548,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1545,9 +1600,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json b/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json index a9ca152ae..b687b2165 100644 --- a/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +++ b/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json @@ -16,7 +16,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -742,6 +743,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -766,9 +795,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.json b/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.json index 412f04edd..dd3a4437c 100644 --- a/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.json +++ b/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.json @@ -17,7 +17,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -743,6 +744,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -767,9 +796,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/void_region.json b/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/void_region.json index 7b54e022d..b8c020d3e 100644 --- a/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/void_region.json +++ b/dist/js/schema/materials_category_components/entities/auxiliary/zero_dimensional/void_region.json @@ -15,7 +15,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -741,6 +742,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -765,9 +794,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category_components/entities/core/three_dimensional/crystal.json b/dist/js/schema/materials_category_components/entities/core/three_dimensional/crystal.json index 70a1b34b6..1b6e05a2b 100644 --- a/dist/js/schema/materials_category_components/entities/core/three_dimensional/crystal.json +++ b/dist/js/schema/materials_category_components/entities/core/three_dimensional/crystal.json @@ -6,7 +6,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -732,6 +733,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -756,9 +785,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } \ No newline at end of file diff --git a/dist/js/schema/materials_category_components/entities/core/two_dimensional/vacuum.json b/dist/js/schema/materials_category_components/entities/core/two_dimensional/vacuum.json index 62c6a6799..d8be35fea 100644 --- a/dist/js/schema/materials_category_components/entities/core/two_dimensional/vacuum.json +++ b/dist/js/schema/materials_category_components/entities/core/two_dimensional/vacuum.json @@ -34,7 +34,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -760,6 +761,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -784,9 +813,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } diff --git a/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.json b/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.json index 652f624ca..89e42ec03 100644 --- a/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.json +++ b/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.json @@ -27,7 +27,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -753,6 +754,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -777,9 +806,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.json b/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.json index 57aa2ecd9..8dd3d0014 100644 --- a/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.json +++ b/dist/js/schema/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.json @@ -342,7 +342,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1068,6 +1069,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1092,9 +1121,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.json b/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.json index 12e0e434c..ec9e5e423 100644 --- a/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.json +++ b/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.json @@ -15,7 +15,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -741,6 +742,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -765,9 +794,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.json b/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.json index ed0e0e08b..f4a6fdfcd 100644 --- a/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.json +++ b/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.json @@ -16,7 +16,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -742,6 +743,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -766,9 +795,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_uniform.json b/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_uniform.json index a4ada7556..90382c102 100644 --- a/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_uniform.json +++ b/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/strained_uniform.json @@ -16,7 +16,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -742,6 +743,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -766,9 +795,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/supercell.json b/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/supercell.json index cf6d692d7..ca9d4d704 100644 --- a/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/supercell.json +++ b/dist/js/schema/materials_category_components/entities/reusable/three_dimensional/supercell.json @@ -16,7 +16,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -742,6 +743,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -766,9 +795,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers.json b/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers.json index c65ad17c9..4f050405a 100644 --- a/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers.json +++ b/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers.json @@ -189,7 +189,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -915,6 +916,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -939,9 +968,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.json b/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.json index d977bf63b..7fc9bcf43 100644 --- a/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.json +++ b/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.json @@ -189,7 +189,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -915,6 +916,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -939,9 +968,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.json b/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.json index 937fcbcc7..3d259b721 100644 --- a/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.json +++ b/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.json @@ -190,7 +190,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -916,6 +917,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -940,9 +969,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.json b/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.json index 8f6f521b2..775b04fe0 100644 --- a/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.json +++ b/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.json @@ -32,7 +32,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -758,6 +759,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -782,9 +811,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.json b/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.json index b4f8363dc..2616f6d08 100644 --- a/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.json +++ b/dist/js/schema/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.json @@ -220,7 +220,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -946,6 +947,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -970,9 +999,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, @@ -1018,7 +1044,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -1744,6 +1771,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -1768,9 +1823,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } @@ -1854,7 +1906,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -2580,6 +2633,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -2604,9 +2685,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } } diff --git a/dist/js/schema/materials_category_components/operations/core/modifications/perturb.json b/dist/js/schema/materials_category_components/operations/core/modifications/perturb.json index 622eb5e55..7f0c7bd71 100644 --- a/dist/js/schema/materials_category_components/operations/core/modifications/perturb.json +++ b/dist/js/schema/materials_category_components/operations/core/modifications/perturb.json @@ -11,7 +11,8 @@ "type": "object", "required": [ "basis", - "lattice" + "lattice", + "name" ], "properties": { "formula": { @@ -737,6 +738,34 @@ } } }, + "metadata": { + "type": "object", + "properties": { + "boundaryConditions": { + "type": "object", + "required": [ + "type", + "offset" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "pbc", + "bc1", + "bc2", + "bc3" + ], + "default": "pbc", + "description": "If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab." + }, + "offset": { + "type": "number" + } + } + } + } + }, "_id": { "description": "entity identity", "type": "string" @@ -761,9 +790,6 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - }, - "metadata": { - "type": "object" } } }, diff --git a/dist/js/schema/method/categorized_method.json b/dist/js/schema/method/categorized_method.json index 5dd83e17f..45428ea7e 100644 --- a/dist/js/schema/method/categorized_method.json +++ b/dist/js/schema/method/categorized_method.json @@ -4,6 +4,7 @@ "title": "categorized method", "type": "object", "required": [ + "name", "units" ], "properties": { @@ -13,6 +14,9 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "categorized unit method", "type": "object", + "required": [ + "name" + ], "properties": { "categories": { "$schema": "http://json-schema.org/draft-07/schema#", diff --git a/dist/js/schema/method/unit_method.json b/dist/js/schema/method/unit_method.json index ab8a53e37..07737ecc7 100644 --- a/dist/js/schema/method/unit_method.json +++ b/dist/js/schema/method/unit_method.json @@ -3,6 +3,9 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "categorized unit method", "type": "object", + "required": [ + "name" + ], "properties": { "categories": { "$schema": "http://json-schema.org/draft-07/schema#", diff --git a/dist/js/schema/methods_directory/mathematical/cg.json b/dist/js/schema/methods_directory/mathematical/cg.json index 552d2a302..e056e3d7a 100644 --- a/dist/js/schema/methods_directory/mathematical/cg.json +++ b/dist/js/schema/methods_directory/mathematical/cg.json @@ -5,7 +5,8 @@ "description": "conjugate gradient method schema", "type": "object", "required": [ - "categories" + "categories", + "name" ], "properties": { "categories": { diff --git a/dist/js/schema/methods_directory/mathematical/davidson.json b/dist/js/schema/methods_directory/mathematical/davidson.json index 95dc49baf..eed233fb1 100644 --- a/dist/js/schema/methods_directory/mathematical/davidson.json +++ b/dist/js/schema/methods_directory/mathematical/davidson.json @@ -5,7 +5,8 @@ "description": "Davidson diagonalization method", "type": "object", "required": [ - "categories" + "categories", + "name" ], "properties": { "categories": { diff --git a/dist/js/schema/methods_directory/mathematical/regression.json b/dist/js/schema/methods_directory/mathematical/regression.json index dac803f35..05559d9b6 100644 --- a/dist/js/schema/methods_directory/mathematical/regression.json +++ b/dist/js/schema/methods_directory/mathematical/regression.json @@ -5,8 +5,9 @@ "type": "object", "required": [ "categories", - "precision", - "data" + "data", + "name", + "precision" ], "properties": { "categories": { diff --git a/dist/js/schema/methods_directory/physical/ao/dunning.json b/dist/js/schema/methods_directory/physical/ao/dunning.json index a12c85172..807a86473 100644 --- a/dist/js/schema/methods_directory/physical/ao/dunning.json +++ b/dist/js/schema/methods_directory/physical/ao/dunning.json @@ -5,7 +5,8 @@ "description": "Dunning correlation-consistent basis set unit method", "type": "object", "required": [ - "categories" + "categories", + "name" ], "definitions": { "ao-basis-dunning": { diff --git a/dist/js/schema/methods_directory/physical/ao/other.json b/dist/js/schema/methods_directory/physical/ao/other.json index c0b4d97a5..c775d0482 100644 --- a/dist/js/schema/methods_directory/physical/ao/other.json +++ b/dist/js/schema/methods_directory/physical/ao/other.json @@ -5,7 +5,8 @@ "description": "Other (neither Pople nor Dunning) basis set unit method", "type": "object", "required": [ - "categories" + "categories", + "name" ], "definitions": { "ao-basis-other": { diff --git a/dist/js/schema/methods_directory/physical/ao/pople.json b/dist/js/schema/methods_directory/physical/ao/pople.json index e18c4251e..984860a2b 100644 --- a/dist/js/schema/methods_directory/physical/ao/pople.json +++ b/dist/js/schema/methods_directory/physical/ao/pople.json @@ -5,7 +5,8 @@ "description": "Pople basis set unit method", "type": "object", "required": [ - "categories" + "categories", + "name" ], "definitions": { "ao-basis-pople": { diff --git a/dist/js/schema/methods_directory/physical/psp.json b/dist/js/schema/methods_directory/physical/psp.json index 70cdafb71..549f9df05 100644 --- a/dist/js/schema/methods_directory/physical/psp.json +++ b/dist/js/schema/methods_directory/physical/psp.json @@ -5,7 +5,8 @@ "description": "Core-valence separation by means of pseudopotentials (effective potential)", "type": "object", "required": [ - "categories" + "categories", + "name" ], "properties": { "categories": { diff --git a/dist/js/schema/methods_directory/physical/pw.json b/dist/js/schema/methods_directory/physical/pw.json index 7d6e0cf7e..d6ea4298e 100644 --- a/dist/js/schema/methods_directory/physical/pw.json +++ b/dist/js/schema/methods_directory/physical/pw.json @@ -5,7 +5,8 @@ "description": "Approximating the electronic wave function with a plane wave basis", "type": "object", "required": [ - "categories" + "categories", + "name" ], "properties": { "categories": { diff --git a/dist/js/schema/methods_directory/physical/smearing.json b/dist/js/schema/methods_directory/physical/smearing.json index dc1b7f20b..43a12397b 100644 --- a/dist/js/schema/methods_directory/physical/smearing.json +++ b/dist/js/schema/methods_directory/physical/smearing.json @@ -5,7 +5,8 @@ "description": "Approximating Heaviside step function with smooth function", "type": "object", "required": [ - "categories" + "categories", + "name" ], "properties": { "categories": { diff --git a/dist/js/schema/methods_directory/physical/tetrahedron.json b/dist/js/schema/methods_directory/physical/tetrahedron.json index fa79e3370..10688888c 100644 --- a/dist/js/schema/methods_directory/physical/tetrahedron.json +++ b/dist/js/schema/methods_directory/physical/tetrahedron.json @@ -4,7 +4,8 @@ "title": "unit method tetrahedron", "type": "object", "required": [ - "categories" + "categories", + "name" ], "properties": { "categories": { diff --git a/dist/js/schema/model/categorized_model.json b/dist/js/schema/model/categorized_model.json index 3fe33c2f4..fa28d364e 100644 --- a/dist/js/schema/model/categorized_model.json +++ b/dist/js/schema/model/categorized_model.json @@ -6,6 +6,7 @@ "required": [ "categories", "method", + "name", "parameters" ], "properties": { @@ -14,6 +15,7 @@ "title": "categorized method", "type": "object", "required": [ + "name", "units" ], "properties": { @@ -23,6 +25,9 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "categorized unit method", "type": "object", + "required": [ + "name" + ], "properties": { "categories": { "$schema": "http://json-schema.org/draft-07/schema#", diff --git a/dist/js/schema/model/model_without_method.json b/dist/js/schema/model/model_without_method.json index 29b0b2fc1..31741c162 100644 --- a/dist/js/schema/model/model_without_method.json +++ b/dist/js/schema/model/model_without_method.json @@ -5,6 +5,7 @@ "type": "object", "required": [ "categories", + "name", "parameters" ], "properties": { diff --git a/dist/js/schema/models_directory/double_hybrid.json b/dist/js/schema/models_directory/double_hybrid.json index f410cbe5c..06f2d4beb 100644 --- a/dist/js/schema/models_directory/double_hybrid.json +++ b/dist/js/schema/models_directory/double_hybrid.json @@ -5,6 +5,7 @@ "type": "object", "required": [ "categories", + "name", "parameters" ], "properties": { diff --git a/dist/js/schema/models_directory/gga.json b/dist/js/schema/models_directory/gga.json index 977292b65..06f2c8409 100644 --- a/dist/js/schema/models_directory/gga.json +++ b/dist/js/schema/models_directory/gga.json @@ -5,6 +5,7 @@ "type": "object", "required": [ "categories", + "name", "parameters" ], "properties": { diff --git a/dist/js/schema/models_directory/gw.json b/dist/js/schema/models_directory/gw.json index 8b55fafc7..33dd9dff7 100644 --- a/dist/js/schema/models_directory/gw.json +++ b/dist/js/schema/models_directory/gw.json @@ -5,6 +5,7 @@ "type": "object", "required": [ "categories", + "name", "parameters" ], "properties": { diff --git a/dist/js/schema/models_directory/hybrid.json b/dist/js/schema/models_directory/hybrid.json index 50a92d899..c494e99be 100644 --- a/dist/js/schema/models_directory/hybrid.json +++ b/dist/js/schema/models_directory/hybrid.json @@ -5,6 +5,7 @@ "type": "object", "required": [ "categories", + "name", "parameters" ], "properties": { diff --git a/dist/js/schema/models_directory/lda.json b/dist/js/schema/models_directory/lda.json index f4415876c..3dd60ea01 100644 --- a/dist/js/schema/models_directory/lda.json +++ b/dist/js/schema/models_directory/lda.json @@ -5,6 +5,7 @@ "type": "object", "required": [ "categories", + "name", "parameters" ], "properties": { diff --git a/dist/js/schema/models_directory/mgga.json b/dist/js/schema/models_directory/mgga.json index 0e0d78e69..4c6fdaaa0 100644 --- a/dist/js/schema/models_directory/mgga.json +++ b/dist/js/schema/models_directory/mgga.json @@ -5,6 +5,7 @@ "type": "object", "required": [ "categories", + "name", "parameters" ], "properties": { diff --git a/dist/js/schema/models_directory/re.json b/dist/js/schema/models_directory/re.json index 861747994..310cd517e 100644 --- a/dist/js/schema/models_directory/re.json +++ b/dist/js/schema/models_directory/re.json @@ -6,6 +6,7 @@ "type": "object", "required": [ "categories", + "name", "parameters" ], "properties": { diff --git a/dist/js/schema/project.json b/dist/js/schema/project.json index 4cb798a18..cfae2a229 100644 --- a/dist/js/schema/project.json +++ b/dist/js/schema/project.json @@ -3,6 +3,9 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "project schema", "type": "object", + "required": [ + "name" + ], "properties": { "gid": { "description": "project GID", diff --git a/dist/js/schema/properties_directory/non_scalar/workflow.json b/dist/js/schema/properties_directory/non_scalar/workflow.json index 9e7b08950..6b3ee4be2 100644 --- a/dist/js/schema/properties_directory/non_scalar/workflow.json +++ b/dist/js/schema/properties_directory/non_scalar/workflow.json @@ -21,7 +21,7 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Subworkflow", + "title": "Subworkflow Schema", "type": "object", "required": [ "application", @@ -30,6 +30,211 @@ "units" ], "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "properties": { + "description": "Array of characteristic properties calculated by this subworkflow", + "type": "array", + "items": { + "description": "property names, eg. `band_gaps`, `band_structure`", + "type": "string" + } + }, + "compute": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "compute arguments schema", + "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", + "type": "object", + "required": [ + "queue", + "nodes", + "ppn", + "timeLimit" + ], + "properties": { + "queue": { + "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", + "type": "string", + "enum": [ + "D", + "OR", + "OF", + "OFplus", + "SR", + "SF", + "SFplus", + "GPOF", + "GP2OF", + "GP4OF", + "GPSF", + "GP2SF", + "GP4SF", + "OR4", + "OR8", + "OR16", + "SR4", + "SR8", + "SR16", + "GOF", + "G4OF", + "G8OF", + "GSF", + "G4SF", + "G8SF" + ] + }, + "nodes": { + "description": "number of nodes used for the job inside the RMS.", + "type": "integer" + }, + "ppn": { + "description": "number of CPUs used for the job inside the RMS.", + "type": "integer" + }, + "timeLimit": { + "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", + "type": "string" + }, + "timeLimitType": { + "description": "Convention to use when reasoning about time limits", + "type": "string", + "default": "per single attempt", + "enum": [ + "per single attempt", + "compound" + ] + }, + "isRestartable": { + "description": "Job is allowed to restart on termination.", + "type": "boolean", + "default": true + }, + "notify": { + "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", + "type": "string" + }, + "email": { + "description": "Email address to notify about job execution.", + "type": "string" + }, + "maxCPU": { + "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", + "type": "integer" + }, + "arguments": { + "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", + "default": {}, + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "quantum espresso arguments schema", + "type": "object", + "additionalProperties": false, + "properties": { + "nimage": { + "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "npools": { + "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "nband": { + "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "ntg": { + "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "ndiag": { + "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + } + } + }, + "cluster": { + "description": "Cluster where the job is executed. Optional on create. Required on job submission.", + "type": "object", + "properties": { + "fqdn": { + "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", + "type": "string" + }, + "jid": { + "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", + "type": "string" + } + } + }, + "errors": { + "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "type": "array", + "items": { + "type": "object", + "properties": { + "domain": { + "description": "Domain of the error appearance (internal).", + "type": "string", + "enum": [ + "rupy", + "alfred", + "celim", + "webapp" + ] + }, + "reason": { + "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", + "type": "string" + }, + "message": { + "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "type": "string" + }, + "traceback": { + "description": "Full machine-readable error traceback. e.g. FileNotFound", + "type": "string" + } + } + } + }, + "excludeFilesPattern": { + "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", + "type": "string" + } + } + }, "units": { "description": "Contains the Units of the subworkflow", "type": "array", @@ -45,17 +250,176 @@ "required": [ "flowchartId", "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", "source", "subtype", "type" ], - "additionalProperties": true, "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "io", "description": "type of the unit", + "type": "string", + "const": "io" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "subtype": { "enum": [ "input", @@ -76,65 +440,46 @@ "oneOf": [ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO rest API input schema", + "title": "data IO database ids input/output schema", "type": "object", "properties": { - "endpoint": { - "description": "rest API endpoint", - "type": "string" - }, - "endpoint_options": { - "description": "rest API endpoint options", - "type": "object" + "type": { + "const": "db_ids" }, - "name": { - "description": "the name of the variable in local scope to save the data under", - "type": "string" + "ids": { + "description": "IDs of item to retrieve from db", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "endpoint", - "endpoint_options" - ], - "additionalProperties": true + "type", + "ids" + ] }, { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO database input/output schema", + "title": "data IO database collection input/output schema", "type": "object", - "oneOf": [ - { - "properties": { - "ids": { - "description": "IDs of item to retrieve from db", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "ids" - ], - "additionalProperties": true + "properties": { + "type": { + "const": "db_collection" }, - { - "properties": { - "collection": { - "description": "db collection name", - "type": "string" - }, - "draft": { - "description": "whether the result should be saved as draft", - "type": "boolean" - } - }, - "required": [ - "collection", - "draft" - ], - "additionalProperties": true + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "description": "whether the result should be saved as draft", + "type": "boolean" } + }, + "required": [ + "type", + "collection", + "draft" ] }, { @@ -142,10 +487,13 @@ "title": "object_storage io schema", "type": "object", "required": [ + "type", "objectData" ], - "additionalProperties": true, "properties": { + "type": { + "const": "object_storage" + }, "objectData": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Object Storage Container Data", @@ -196,50 +544,34 @@ } } } - ] + ], + "discriminator": { + "propertyName": "type" + } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "reduce unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "mapFlowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -252,6 +584,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -262,29 +598,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -292,29 +616,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -322,29 +634,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -352,29 +652,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -384,6 +672,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -404,26 +703,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "reduce unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "mapFlowchartId", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "reduce", "description": "type of the unit", + "type": "string", + "const": "reduce" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "mapFlowchartId": { "description": "corresponding map unit flowchart ID", "type": "string" @@ -451,48 +755,32 @@ } } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "condition unit schema", + "type": "object", + "required": [ + "else", + "flowchartId", + "input", + "maxOccurrences", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "then", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -505,6 +793,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -515,29 +807,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -545,29 +825,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -575,29 +843,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -605,29 +861,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -637,6 +881,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -657,29 +912,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "condition unit schema", - "type": "object", - "required": [ - "else", - "flowchartId", - "input", - "maxOccurrences", - "statement", - "then", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "condition", "description": "type of the unit", + "type": "string", + "const": "condition" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", "type": "string" }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "input": { "description": "Input information for condition.", "type": "array", @@ -707,62 +964,42 @@ "description": "Condition statement. e.g. 'abs(x-total_energy) < 1e-5'", "type": "string" }, - "then": { - "description": "Flowchart ID reference for `then` part of the condition.", - "type": "string" - }, - "else": { - "description": "Flowchart ID reference for `else` part of the condition.", - "type": "string" - }, - "maxOccurrences": { - "description": "Maximum occurrence of the condition, usable for loops.", - "type": "integer" - }, - "throwException": { - "description": "Throw exception on reaching to maximum occurence.", - "type": "boolean" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "then": { + "description": "Flowchart ID reference for `then` part of the condition.", "type": "string" }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "else": { + "description": "Flowchart ID reference for `else` part of the condition.", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" + "maxOccurrences": { + "description": "Maximum occurrence of the condition, usable for loops.", + "type": "integer" }, - "context": { - "type": "object" + "throwException": { + "description": "Throw exception on reaching to maximum occurence.", + "type": "boolean" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assertion unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -776,6 +1013,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -786,29 +1027,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -816,29 +1045,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -846,29 +1063,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -876,29 +1081,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -908,6 +1101,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -928,55 +1132,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "assertion unit schema", - "type": "object", - "required": [ - "flowchartId", - "name", - "statement", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "assertion", - "description": "type of the unit", - "type": "string" - }, - "statement": { - "type": "string", - "description": "The statement to be evaluated" - }, - "errorMessage": { - "type": "string", - "description": "The error message to be displayed if the assertion fails" - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assertion" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -994,8 +1157,35 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "statement": { + "type": "string", + "description": "The statement to be evaluated" + }, + "errorMessage": { + "type": "string", + "description": "The error message to be displayed if the assertion fails" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit schema (base)", + "type": "object", + "required": [ + "application", + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -1009,6 +1199,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -1019,29 +1213,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1049,29 +1231,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1079,29 +1249,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1109,29 +1267,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -1141,315 +1287,138 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { "type": "object", "required": [ - "trackedAt", - "status" - ], - "properties": { - "trackedAt": { - "type": "number" - }, - "status": { - "type": "string" - }, - "repetition": { - "type": "number" - } - } - } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit schema (base)", - "type": "object", - "required": [ - "application", - "flowchartId", - "input", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "execution", - "description": "type of the unit", - "type": "string" - }, - "application": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", - "type": "object", - "additionalProperties": true, - "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, - "_id": { - "description": "entity identity", - "type": "string" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "name": { - "description": "entity name", - "type": "string" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - } - } - }, - "executable": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "executable schema", - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "description": "The name of the executable. e.g. pw.x", - "type": "string" - }, - "applicationId": { - "description": "_ids of the application this executable belongs to", - "type": "array", - "items": { - "type": "string" - } - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "_id": { - "description": "entity identity", - "type": "string" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" } } } }, - "flavor": { + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "execution" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "flavor schema", + "title": "application schema", "type": "object", + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { - "executableId": { - "description": "_id of the executable this flavor belongs to", + "_id": { + "description": "entity identity", "type": "string" }, - "executableName": { - "description": "name of the executable this flavor belongs to", + "slug": { + "description": "entity slug", "type": "string" }, - "applicationName": { - "description": "name of the application this flavor belongs to", + "systemName": { "type": "string" }, - "input": { - "title": "execution unit input schema", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input id item schema for physics-based simulation engines", - "type": "object", - "additionalProperties": false, - "properties": { - "templateId": { - "type": "string" - }, - "templateName": { - "type": "string" - }, - "name": { - "description": "name of the resulting input file, if different than template name", - "type": "string" - } - } - } + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" }, - "supportedApplicationVersions": { - "description": "list of application versions this flavor supports", - "type": "array", - "items": { - "type": "string" - } + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + } + } + }, + "executable": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "executable schema", + "type": "object", + "required": [ + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { "_id": { "description": "entity identity", "type": "string" @@ -1480,29 +1449,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1510,29 +1467,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1540,29 +1485,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1570,344 +1503,321 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } - } - } - }, - "input": { - "description": "unit input (type to be specified by the application's execution unit)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false + }, + "applicationId": { + "description": "_ids of the application this executable belongs to", + "type": "array", + "items": { + "type": "string" + } + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + "flavor": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor schema", + "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { + } + } + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object", + "additionalProperties": false, + "properties": { + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + }, + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + } + } + } + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { "type": "string" } - ] - } - }, - "tags": { - "description": "entity tags", - "type": "array", - "items": { - "type": "string" + } } }, - "statusTrack": { + "input": { "type": "array", "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit input item schema", "type": "object", "required": [ - "trackedAt", - "status" + "rendered", + "isManuallyChanged", + "template" ], "properties": { - "trackedAt": { - "type": "number" + "template": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "template schema", + "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", + "type": "string" + } + } }, - "status": { + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" }, - "repetition": { - "type": "number" + "isManuallyChanged": { + "type": "boolean", + "default": false } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "assignment unit schema", - "type": "object", - "required": [ - "flowchartId", - "name", - "operand", - "type", - "value" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "assignment", - "description": "type of the unit", - "type": "string" }, - "input": { - "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "context": { "type": "array", "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit input schema", "type": "object", "required": [ - "scope", - "name" + "name", + "isEdited", + "data" ], "properties": { - "scope": { - "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", - "type": "string" - }, "name": { - "description": "Name of the input data. e.g. total_energy", - "type": "string" + "type": "string", + "tsType": "ContextProviderNameEnum" + }, + "isEdited": { + "type": "boolean" + }, + "data": { + "type": "object" + }, + "extraData": { + "type": "object" } } } - }, - "operand": { - "description": "Name of the global variable. e.g. 'x'", - "type": "string" - }, - "value": { - "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", - "oneOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assignment unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "operand", + "postProcessors", + "preProcessors", + "results", + "type", + "value" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -1920,6 +1830,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -1930,29 +1844,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1960,29 +1862,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1990,29 +1880,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -2020,29 +1898,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2052,6 +1918,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -2073,61 +1950,13 @@ } } }, - "scope": { - "type": "string" - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "processing unit schema", - "type": "object", - "required": [ - "flowchartId", - "inputData", - "operation", - "operationType", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "processing", - "description": "type of the unit", - "type": "string" - }, - "operation": { - "description": "Contains information about the operation used.", - "type": "string" - }, - "operationType": { - "description": "Contains information about the specific type of the operation used.", - "type": "string" - }, - "inputData": { - "description": "unit input (type to be specified by the child units)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assignment" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -2145,8 +1974,72 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "scope": { + "type": "string" + }, + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", + "type": "object", + "required": [ + "scope", + "name" + ], + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + } + } + } + }, + "operand": { + "description": "Name of the global variable. e.g. 'x'", + "type": "string" + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "oneOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "processing unit schema", + "type": "object", + "required": [ + "flowchartId", + "inputData", + "monitors", + "name", + "operation", + "operationType", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -2160,6 +2053,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -2170,29 +2067,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -2200,29 +2085,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -2230,29 +2103,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -2260,29 +2121,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2292,6 +2141,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -2312,6 +2172,41 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "processing" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "inputData": { + "description": "unit input (type to be specified by the child units)" } } } @@ -2374,34 +2269,100 @@ }, "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", + "title": "application schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + } + } + }, + "isDraft": { + "description": "Defines whether to store the results/properties extracted in this unit to properties collection", + "type": "boolean", + "default": false + } + } + } + }, + "units": { + "description": "Contains the Units of the Workflow", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit schema", + "type": "object", + "oneOf": [ + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "data IO unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "source", + "subtype", + "type" + ], "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -2426,236 +2387,142 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - } - } - }, - "isDraft": { - "description": "Defines whether to store the results/properties extracted in this unit to properties collection", - "type": "boolean", - "default": false - }, - "_id": { - "description": "subworkflow identity", - "type": "string" - }, - "name": { - "description": "Human-readable name of the subworkflow. e.g. Total-energy", - "type": "string" - }, - "properties": { - "description": "Array of characteristic properties calculated by this subworkflow", - "type": "array", - "items": { - "description": "property names, eg. `band_gaps`, `band_structure`", - "type": "string" - } - }, - "compute": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "compute arguments schema", - "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", - "type": "object", - "required": [ - "queue", - "nodes", - "ppn", - "timeLimit" - ], - "properties": { - "queue": { - "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", - "type": "string", - "enum": [ - "D", - "OR", - "OF", - "OFplus", - "SR", - "SF", - "SFplus", - "GPOF", - "GP2OF", - "GP4OF", - "GPSF", - "GP2SF", - "GP4SF", - "OR4", - "OR8", - "OR16", - "SR4", - "SR8", - "SR16", - "GOF", - "G4OF", - "G8OF", - "GSF", - "G4SF", - "G8SF" - ] - }, - "nodes": { - "description": "number of nodes used for the job inside the RMS.", - "type": "integer" - }, - "ppn": { - "description": "number of CPUs used for the job inside the RMS.", - "type": "integer" - }, - "timeLimit": { - "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", - "type": "string" - }, - "timeLimitType": { - "description": "Convention to use when reasoning about time limits", - "type": "string", - "default": "per single attempt", - "enum": [ - "per single attempt", - "compound" - ] - }, - "isRestartable": { - "description": "Job is allowed to restart on termination.", - "type": "boolean", - "default": true - }, - "notify": { - "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", - "type": "string" }, - "email": { - "description": "Email address to notify about job execution.", - "type": "string" + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } }, - "maxCPU": { - "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", - "type": "integer" + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } }, - "arguments": { - "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", - "default": {}, - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "quantum espresso arguments schema", - "type": "object", - "additionalProperties": false, - "properties": { - "nimage": { - "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "npools": { - "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "nband": { - "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "ntg": { - "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "ndiag": { - "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } } } }, - "cluster": { - "description": "Cluster where the job is executed. Optional on create. Required on job submission.", - "type": "object", - "properties": { - "fqdn": { - "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", - "type": "string" - }, - "jid": { - "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", - "type": "string" + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } } } }, - "errors": { - "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { "type": "array", "items": { "type": "object", + "required": [ + "trackedAt", + "status" + ], "properties": { - "domain": { - "description": "Domain of the error appearance (internal).", - "type": "string", - "enum": [ - "rupy", - "alfred", - "celim", - "webapp" - ] - }, - "reason": { - "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", - "type": "string" + "trackedAt": { + "type": "number" }, - "message": { - "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "status": { "type": "string" }, - "traceback": { - "description": "Full machine-readable error traceback. e.g. FileNotFound", - "type": "string" + "repetition": { + "type": "number" } } } }, - "excludeFilesPattern": { - "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", - "type": "string" - } - } - } - } - } - }, - "units": { - "description": "Contains the Units of the Workflow", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit schema", - "type": "object", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "source", - "subtype", - "type" - ], - "additionalProperties": true, - "properties": { + "isDraft": { + "type": "boolean" + }, "type": { - "const": "io", "description": "type of the unit", + "type": "string", + "const": "io" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "subtype": { "enum": [ "input", @@ -2676,65 +2543,46 @@ "oneOf": [ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO rest API input schema", + "title": "data IO database ids input/output schema", "type": "object", "properties": { - "endpoint": { - "description": "rest API endpoint", - "type": "string" - }, - "endpoint_options": { - "description": "rest API endpoint options", - "type": "object" + "type": { + "const": "db_ids" }, - "name": { - "description": "the name of the variable in local scope to save the data under", - "type": "string" + "ids": { + "description": "IDs of item to retrieve from db", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "endpoint", - "endpoint_options" - ], - "additionalProperties": true + "type", + "ids" + ] }, { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO database input/output schema", + "title": "data IO database collection input/output schema", "type": "object", - "oneOf": [ - { - "properties": { - "ids": { - "description": "IDs of item to retrieve from db", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "ids" - ], - "additionalProperties": true + "properties": { + "type": { + "const": "db_collection" }, - { - "properties": { - "collection": { - "description": "db collection name", - "type": "string" - }, - "draft": { - "description": "whether the result should be saved as draft", - "type": "boolean" - } - }, - "required": [ - "collection", - "draft" - ], - "additionalProperties": true + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "description": "whether the result should be saved as draft", + "type": "boolean" } + }, + "required": [ + "type", + "collection", + "draft" ] }, { @@ -2742,10 +2590,13 @@ "title": "object_storage io schema", "type": "object", "required": [ + "type", "objectData" ], - "additionalProperties": true, "properties": { + "type": { + "const": "object_storage" + }, "objectData": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Object Storage Container Data", @@ -2796,50 +2647,34 @@ } } } - ] + ], + "discriminator": { + "propertyName": "type" + } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "reduce unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "mapFlowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -2852,6 +2687,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -2862,29 +2701,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -2892,29 +2719,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -2922,59 +2737,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2984,6 +2775,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -3004,26 +2806,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "reduce unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "mapFlowchartId", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "reduce", "description": "type of the unit", + "type": "string", + "const": "reduce" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "mapFlowchartId": { "description": "corresponding map unit flowchart ID", "type": "string" @@ -3051,48 +2858,32 @@ } } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "condition unit schema", + "type": "object", + "required": [ + "else", + "flowchartId", + "input", + "maxOccurrences", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "then", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -3105,6 +2896,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -3115,29 +2910,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -3145,29 +2928,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -3175,29 +2946,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -3205,29 +2964,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -3237,6 +2984,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -3257,29 +3015,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "condition unit schema", - "type": "object", - "required": [ - "else", - "flowchartId", - "input", - "maxOccurrences", - "statement", - "then", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "condition", "description": "type of the unit", + "type": "string", + "const": "condition" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "input": { "description": "Input information for condition.", "type": "array", @@ -3322,48 +3082,28 @@ "throwException": { "description": "Throw exception on reaching to maximum occurence.", "type": "boolean" - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assertion unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -3376,6 +3116,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -3386,29 +3130,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -3416,29 +3148,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -3446,29 +3166,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -3476,29 +3184,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -3508,6 +3204,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -3528,55 +3235,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "assertion unit schema", - "type": "object", - "required": [ - "flowchartId", - "name", - "statement", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "assertion", - "description": "type of the unit", - "type": "string" - }, - "statement": { - "type": "string", - "description": "The statement to be evaluated" - }, - "errorMessage": { - "type": "string", - "description": "The error message to be displayed if the assertion fails" - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assertion" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -3594,8 +3260,35 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "statement": { + "type": "string", + "description": "The statement to be evaluated" + }, + "errorMessage": { + "type": "string", + "description": "The error message to be displayed if the assertion fails" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit schema (base)", + "type": "object", + "required": [ + "application", + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -3609,6 +3302,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -3619,29 +3316,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -3649,29 +3334,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -3679,29 +3352,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -3709,29 +3370,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -3741,6 +3390,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -3761,56 +3421,43 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit schema (base)", - "type": "object", - "required": [ - "application", - "flowchartId", - "input", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "execution", "description": "type of the unit", + "type": "string", + "const": "execution" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", + "title": "application schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -3835,6 +3482,30 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } }, @@ -3843,24 +3514,14 @@ "title": "executable schema", "type": "object", "required": [ - "name" + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" ], "properties": { - "name": { - "description": "The name of the executable. e.g. pw.x", - "type": "string" - }, - "applicationId": { - "description": "_ids of the application this executable belongs to", - "type": "array", - "items": { - "type": "string" - } - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -3877,6 +3538,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -3887,29 +3552,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -3917,29 +3570,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -3947,109 +3588,64 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } - } - } - }, - "flavor": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "flavor schema", - "type": "object", - "properties": { - "executableId": { - "description": "_id of the executable this flavor belongs to", - "type": "string" - }, - "executableName": { - "description": "name of the executable this flavor belongs to", - "type": "string" }, - "applicationName": { - "description": "name of the application this flavor belongs to", - "type": "string" - }, - "input": { - "title": "execution unit input schema", + "results": { + "description": "names of the results for this calculation", "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input id item schema for physics-based simulation engines", + "title": "runtime item name object schema", "type": "object", - "additionalProperties": false, + "required": [ + "name" + ], "properties": { - "templateId": { - "type": "string" - }, - "templateName": { - "type": "string" - }, "name": { - "description": "name of the resulting input file, if different than template name", + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } } } }, - "supportedApplicationVersions": { - "description": "list of application versions this flavor supports", + "applicationId": { + "description": "_ids of the application this executable belongs to", "type": "array", "items": { "type": "string" } }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } + }, + "flavor": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor schema", + "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { "_id": { "description": "entity identity", "type": "string" @@ -4080,29 +3676,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -4110,29 +3694,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -4140,29 +3712,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -4170,238 +3730,171 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - } - } - }, - "input": { - "description": "unit input (type to be specified by the application's execution unit)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, "required": [ "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "execution unit input id item schema for physics-based simulation engines", "type": "object", + "additionalProperties": false, "properties": { + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "name of the resulting input file, if different than template name", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + } + } + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { "type": "string" } - ] + } } }, - "results": { - "description": "names of the results for this calculation", + "input": { "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + "title": "execution unit input item schema", + "type": "object", + "required": [ + "rendered", + "isManuallyChanged", + "template" + ], + "properties": { + "template": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "template schema", "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", "type": "string" } - }, - "required": [ - "name" - ] + } }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" + }, + "isManuallyChanged": { + "type": "boolean", + "default": false } - ] - } - }, - "tags": { - "description": "entity tags", - "type": "array", - "items": { - "type": "string" + } } }, - "statusTrack": { + "context": { "type": "array", "items": { "type": "object", "required": [ - "trackedAt", - "status" + "name", + "isEdited", + "data" ], "properties": { - "trackedAt": { - "type": "number" + "name": { + "type": "string", + "tsType": "ContextProviderNameEnum" }, - "status": { - "type": "string" + "isEdited": { + "type": "boolean" }, - "repetition": { - "type": "number" + "data": { + "type": "object" + }, + "extraData": { + "type": "object" } } } @@ -4414,100 +3907,20 @@ "type": "object", "required": [ "flowchartId", + "monitors", "name", "operand", + "postProcessors", + "preProcessors", + "results", "type", "value" ], - "additionalProperties": true, "properties": { - "type": { - "const": "assignment", - "description": "type of the unit", - "type": "string" - }, - "input": { - "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit input schema", - "type": "object", - "required": [ - "scope", - "name" - ], - "properties": { - "scope": { - "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", - "type": "string" - }, - "name": { - "description": "Name of the input data. e.g. total_energy", - "type": "string" - } - } - } - }, - "operand": { - "description": "Name of the global variable. e.g. 'x'", - "type": "string" - }, - "value": { - "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", - "oneOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -4520,6 +3933,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -4530,59 +3947,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -4590,29 +3983,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -4620,29 +4001,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -4652,6 +4021,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -4673,61 +4053,13 @@ } } }, - "scope": { - "type": "string" - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "processing unit schema", - "type": "object", - "required": [ - "flowchartId", - "inputData", - "operation", - "operationType", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "processing", - "description": "type of the unit", - "type": "string" - }, - "operation": { - "description": "Contains information about the operation used.", - "type": "string" - }, - "operationType": { - "description": "Contains information about the specific type of the operation used.", - "type": "string" - }, - "inputData": { - "description": "unit input (type to be specified by the child units)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assignment" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -4745,8 +4077,72 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "scope": { + "type": "string" + }, + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", + "type": "object", + "required": [ + "scope", + "name" + ], + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + } + } + } + }, + "operand": { + "description": "Name of the global variable. e.g. 'x'", + "type": "string" + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "oneOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "processing unit schema", + "type": "object", + "required": [ + "flowchartId", + "inputData", + "monitors", + "name", + "operation", + "operationType", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -4760,6 +4156,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -4770,29 +4170,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -4800,59 +4188,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -4860,29 +4224,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -4892,6 +4244,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -4912,92 +4275,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "map unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "type", - "workflowId" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "map", - "description": "type of the unit", - "type": "string" - }, - "workflowId": { - "description": "Id of workflow to run inside map", - "type": "string" - }, - "input": { - "description": "Input information for map.", - "type": "object", - "required": [ - "target" - ], - "properties": { - "target": { - "description": "Name of the target variable to substitute using the values below. e.g. K_POINTS", - "type": "string" - }, - "scope": { - "description": "Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.", - "type": "string" - }, - "name": { - "description": "Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.", - "type": "string" - }, - "values": { - "description": "Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution", - "type": "array", - "items": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "object" - } - ] - } - }, - "useValues": { - "type": "boolean" - } - } - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "processing" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -5015,8 +4300,38 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "inputData": { + "description": "unit input (type to be specified by the child units)" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "map unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type", + "workflowId" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -5030,6 +4345,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -5040,29 +4359,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -5070,29 +4377,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -5100,59 +4395,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -5162,6 +4433,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -5182,45 +4464,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "subworkflow unit schema", - "type": "object", - "required": [ - "type", - "flowchartId" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "subworkflow", - "description": "type of the unit", - "type": "string" - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "map" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -5238,8 +4489,70 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "workflowId": { + "description": "Id of workflow to run inside map", + "type": "string" + }, + "input": { + "description": "Input information for map.", + "type": "object", + "required": [ + "target" + ], + "properties": { + "target": { + "description": "Name of the target variable to substitute using the values below. e.g. K_POINTS", + "type": "string" + }, + "scope": { + "description": "Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.", + "type": "string" + }, + "name": { + "description": "Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.", + "type": "string" + }, + "values": { + "description": "Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution", + "type": "array", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + } + ] + } + }, + "useValues": { + "type": "boolean" + } + } + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "subworkflow unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -5253,6 +4566,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -5263,29 +4580,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -5293,29 +4598,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -5323,29 +4616,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -5353,29 +4634,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -5385,6 +4654,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -5405,6 +4685,30 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "subworkflow" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" } } } diff --git a/dist/js/schema/property/holder.json b/dist/js/schema/property/holder.json index 00335bb0c..904fd01af 100644 --- a/dist/js/schema/property/holder.json +++ b/dist/js/schema/property/holder.json @@ -2029,7 +2029,7 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Subworkflow", + "title": "Subworkflow Schema", "type": "object", "required": [ "application", @@ -2038,6 +2038,211 @@ "units" ], "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "properties": { + "description": "Array of characteristic properties calculated by this subworkflow", + "type": "array", + "items": { + "description": "property names, eg. `band_gaps`, `band_structure`", + "type": "string" + } + }, + "compute": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "compute arguments schema", + "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", + "type": "object", + "required": [ + "queue", + "nodes", + "ppn", + "timeLimit" + ], + "properties": { + "queue": { + "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", + "type": "string", + "enum": [ + "D", + "OR", + "OF", + "OFplus", + "SR", + "SF", + "SFplus", + "GPOF", + "GP2OF", + "GP4OF", + "GPSF", + "GP2SF", + "GP4SF", + "OR4", + "OR8", + "OR16", + "SR4", + "SR8", + "SR16", + "GOF", + "G4OF", + "G8OF", + "GSF", + "G4SF", + "G8SF" + ] + }, + "nodes": { + "description": "number of nodes used for the job inside the RMS.", + "type": "integer" + }, + "ppn": { + "description": "number of CPUs used for the job inside the RMS.", + "type": "integer" + }, + "timeLimit": { + "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", + "type": "string" + }, + "timeLimitType": { + "description": "Convention to use when reasoning about time limits", + "type": "string", + "default": "per single attempt", + "enum": [ + "per single attempt", + "compound" + ] + }, + "isRestartable": { + "description": "Job is allowed to restart on termination.", + "type": "boolean", + "default": true + }, + "notify": { + "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", + "type": "string" + }, + "email": { + "description": "Email address to notify about job execution.", + "type": "string" + }, + "maxCPU": { + "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", + "type": "integer" + }, + "arguments": { + "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", + "default": {}, + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "quantum espresso arguments schema", + "type": "object", + "additionalProperties": false, + "properties": { + "nimage": { + "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "npools": { + "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "nband": { + "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "ntg": { + "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "ndiag": { + "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + } + } + }, + "cluster": { + "description": "Cluster where the job is executed. Optional on create. Required on job submission.", + "type": "object", + "properties": { + "fqdn": { + "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", + "type": "string" + }, + "jid": { + "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", + "type": "string" + } + } + }, + "errors": { + "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "type": "array", + "items": { + "type": "object", + "properties": { + "domain": { + "description": "Domain of the error appearance (internal).", + "type": "string", + "enum": [ + "rupy", + "alfred", + "celim", + "webapp" + ] + }, + "reason": { + "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", + "type": "string" + }, + "message": { + "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "type": "string" + }, + "traceback": { + "description": "Full machine-readable error traceback. e.g. FileNotFound", + "type": "string" + } + } + } + }, + "excludeFilesPattern": { + "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", + "type": "string" + } + } + }, "units": { "description": "Contains the Units of the subworkflow", "type": "array", @@ -2053,17 +2258,176 @@ "required": [ "flowchartId", "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", "source", "subtype", "type" ], - "additionalProperties": true, "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "io", "description": "type of the unit", + "type": "string", + "const": "io" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "subtype": { "enum": [ "input", @@ -2084,65 +2448,46 @@ "oneOf": [ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO rest API input schema", + "title": "data IO database ids input/output schema", "type": "object", "properties": { - "endpoint": { - "description": "rest API endpoint", - "type": "string" - }, - "endpoint_options": { - "description": "rest API endpoint options", - "type": "object" + "type": { + "const": "db_ids" }, - "name": { - "description": "the name of the variable in local scope to save the data under", - "type": "string" + "ids": { + "description": "IDs of item to retrieve from db", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "endpoint", - "endpoint_options" - ], - "additionalProperties": true + "type", + "ids" + ] }, { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO database input/output schema", + "title": "data IO database collection input/output schema", "type": "object", - "oneOf": [ - { - "properties": { - "ids": { - "description": "IDs of item to retrieve from db", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "ids" - ], - "additionalProperties": true + "properties": { + "type": { + "const": "db_collection" }, - { - "properties": { - "collection": { - "description": "db collection name", - "type": "string" - }, - "draft": { - "description": "whether the result should be saved as draft", - "type": "boolean" - } - }, - "required": [ - "collection", - "draft" - ], - "additionalProperties": true + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "description": "whether the result should be saved as draft", + "type": "boolean" } + }, + "required": [ + "type", + "collection", + "draft" ] }, { @@ -2150,10 +2495,13 @@ "title": "object_storage io schema", "type": "object", "required": [ + "type", "objectData" ], - "additionalProperties": true, "properties": { + "type": { + "const": "object_storage" + }, "objectData": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Object Storage Container Data", @@ -2204,50 +2552,34 @@ } } } - ] + ], + "discriminator": { + "propertyName": "type" + } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "reduce unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "mapFlowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -2260,6 +2592,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -2270,29 +2606,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -2300,29 +2624,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -2330,29 +2642,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -2360,29 +2660,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2392,6 +2680,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -2412,26 +2711,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "reduce unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "mapFlowchartId", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "reduce", "description": "type of the unit", + "type": "string", + "const": "reduce" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "mapFlowchartId": { "description": "corresponding map unit flowchart ID", "type": "string" @@ -2459,48 +2763,32 @@ } } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "condition unit schema", + "type": "object", + "required": [ + "else", + "flowchartId", + "input", + "maxOccurrences", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "then", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -2513,6 +2801,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -2523,29 +2815,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -2553,29 +2833,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -2583,29 +2851,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -2613,29 +2869,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2645,6 +2889,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -2665,29 +2920,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "condition unit schema", - "type": "object", - "required": [ - "else", - "flowchartId", - "input", - "maxOccurrences", - "statement", - "then", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "condition", "description": "type of the unit", + "type": "string", + "const": "condition" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", "type": "string" }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "input": { "description": "Input information for condition.", "type": "array", @@ -2715,62 +2972,42 @@ "description": "Condition statement. e.g. 'abs(x-total_energy) < 1e-5'", "type": "string" }, - "then": { - "description": "Flowchart ID reference for `then` part of the condition.", - "type": "string" - }, - "else": { - "description": "Flowchart ID reference for `else` part of the condition.", - "type": "string" - }, - "maxOccurrences": { - "description": "Maximum occurrence of the condition, usable for loops.", - "type": "integer" - }, - "throwException": { - "description": "Throw exception on reaching to maximum occurence.", - "type": "boolean" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "then": { + "description": "Flowchart ID reference for `then` part of the condition.", "type": "string" }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "else": { + "description": "Flowchart ID reference for `else` part of the condition.", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" + "maxOccurrences": { + "description": "Maximum occurrence of the condition, usable for loops.", + "type": "integer" }, - "context": { - "type": "object" + "throwException": { + "description": "Throw exception on reaching to maximum occurence.", + "type": "boolean" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assertion unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -2784,6 +3021,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -2794,29 +3035,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -2824,29 +3053,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -2854,29 +3071,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -2884,29 +3089,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2916,6 +3109,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -2936,55 +3140,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "assertion unit schema", - "type": "object", - "required": [ - "flowchartId", - "name", - "statement", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "assertion", - "description": "type of the unit", - "type": "string" - }, - "statement": { - "type": "string", - "description": "The statement to be evaluated" - }, - "errorMessage": { - "type": "string", - "description": "The error message to be displayed if the assertion fails" - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assertion" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -3002,8 +3165,35 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "statement": { + "type": "string", + "description": "The statement to be evaluated" + }, + "errorMessage": { + "type": "string", + "description": "The error message to be displayed if the assertion fails" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit schema (base)", + "type": "object", + "required": [ + "application", + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -3017,6 +3207,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -3027,29 +3221,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -3057,29 +3239,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -3087,29 +3257,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -3117,29 +3275,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -3149,315 +3295,138 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { "type": "object", "required": [ - "trackedAt", - "status" - ], - "properties": { - "trackedAt": { - "type": "number" - }, - "status": { - "type": "string" - }, - "repetition": { - "type": "number" - } - } - } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit schema (base)", - "type": "object", - "required": [ - "application", - "flowchartId", - "input", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "execution", - "description": "type of the unit", - "type": "string" - }, - "application": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", - "type": "object", - "additionalProperties": true, - "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, - "_id": { - "description": "entity identity", - "type": "string" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "name": { - "description": "entity name", - "type": "string" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - } - } - }, - "executable": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "executable schema", - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "description": "The name of the executable. e.g. pw.x", - "type": "string" - }, - "applicationId": { - "description": "_ids of the application this executable belongs to", - "type": "array", - "items": { - "type": "string" - } - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "_id": { - "description": "entity identity", - "type": "string" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" } } } }, - "flavor": { + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "execution" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "flavor schema", + "title": "application schema", "type": "object", + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { - "executableId": { - "description": "_id of the executable this flavor belongs to", + "_id": { + "description": "entity identity", "type": "string" }, - "executableName": { - "description": "name of the executable this flavor belongs to", + "slug": { + "description": "entity slug", "type": "string" }, - "applicationName": { - "description": "name of the application this flavor belongs to", + "systemName": { "type": "string" }, - "input": { - "title": "execution unit input schema", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input id item schema for physics-based simulation engines", - "type": "object", - "additionalProperties": false, - "properties": { - "templateId": { - "type": "string" - }, - "templateName": { - "type": "string" - }, - "name": { - "description": "name of the resulting input file, if different than template name", - "type": "string" - } - } - } + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" }, - "supportedApplicationVersions": { - "description": "list of application versions this flavor supports", - "type": "array", - "items": { - "type": "string" - } + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + } + } + }, + "executable": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "executable schema", + "type": "object", + "required": [ + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { "_id": { "description": "entity identity", "type": "string" @@ -3488,29 +3457,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -3518,29 +3475,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -3548,29 +3493,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -3578,344 +3511,321 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } - } - } - }, - "input": { - "description": "unit input (type to be specified by the application's execution unit)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false + }, + "applicationId": { + "description": "_ids of the application this executable belongs to", + "type": "array", + "items": { + "type": "string" + } + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + "flavor": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor schema", + "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { + } + } + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object", + "additionalProperties": false, + "properties": { + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + }, + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + } + } + } + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { "type": "string" } - ] - } - }, - "tags": { - "description": "entity tags", - "type": "array", - "items": { - "type": "string" + } } }, - "statusTrack": { + "input": { "type": "array", "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit input item schema", "type": "object", "required": [ - "trackedAt", - "status" + "rendered", + "isManuallyChanged", + "template" ], "properties": { - "trackedAt": { - "type": "number" + "template": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "template schema", + "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", + "type": "string" + } + } }, - "status": { + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" }, - "repetition": { - "type": "number" + "isManuallyChanged": { + "type": "boolean", + "default": false } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "assignment unit schema", - "type": "object", - "required": [ - "flowchartId", - "name", - "operand", - "type", - "value" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "assignment", - "description": "type of the unit", - "type": "string" }, - "input": { - "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "context": { "type": "array", "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit input schema", "type": "object", "required": [ - "scope", - "name" + "name", + "isEdited", + "data" ], "properties": { - "scope": { - "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", - "type": "string" - }, "name": { - "description": "Name of the input data. e.g. total_energy", - "type": "string" + "type": "string", + "tsType": "ContextProviderNameEnum" + }, + "isEdited": { + "type": "boolean" + }, + "data": { + "type": "object" + }, + "extraData": { + "type": "object" } } } - }, - "operand": { - "description": "Name of the global variable. e.g. 'x'", - "type": "string" - }, - "value": { - "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", - "oneOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assignment unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "operand", + "postProcessors", + "preProcessors", + "results", + "type", + "value" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -3928,6 +3838,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -3938,29 +3852,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -3968,29 +3870,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -3998,29 +3888,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -4028,29 +3906,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -4060,6 +3926,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -4081,61 +3958,13 @@ } } }, - "scope": { - "type": "string" - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "processing unit schema", - "type": "object", - "required": [ - "flowchartId", - "inputData", - "operation", - "operationType", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "processing", - "description": "type of the unit", - "type": "string" - }, - "operation": { - "description": "Contains information about the operation used.", - "type": "string" - }, - "operationType": { - "description": "Contains information about the specific type of the operation used.", - "type": "string" - }, - "inputData": { - "description": "unit input (type to be specified by the child units)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assignment" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -4153,8 +3982,72 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "scope": { + "type": "string" + }, + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", + "type": "object", + "required": [ + "scope", + "name" + ], + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + } + } + } + }, + "operand": { + "description": "Name of the global variable. e.g. 'x'", + "type": "string" + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "oneOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "processing unit schema", + "type": "object", + "required": [ + "flowchartId", + "inputData", + "monitors", + "name", + "operation", + "operationType", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -4168,6 +4061,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -4178,29 +4075,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -4208,29 +4093,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -4238,29 +4111,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -4268,29 +4129,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -4300,6 +4149,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -4320,6 +4180,41 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "processing" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "inputData": { + "description": "unit input (type to be specified by the child units)" } } } @@ -4382,34 +4277,100 @@ }, "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", + "title": "application schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + } + } + }, + "isDraft": { + "description": "Defines whether to store the results/properties extracted in this unit to properties collection", + "type": "boolean", + "default": false + } + } + } + }, + "units": { + "description": "Contains the Units of the Workflow", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit schema", + "type": "object", + "oneOf": [ + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "data IO unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "source", + "subtype", + "type" + ], "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -4434,236 +4395,142 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - } - } - }, - "isDraft": { - "description": "Defines whether to store the results/properties extracted in this unit to properties collection", - "type": "boolean", - "default": false - }, - "_id": { - "description": "subworkflow identity", - "type": "string" - }, - "name": { - "description": "Human-readable name of the subworkflow. e.g. Total-energy", - "type": "string" - }, - "properties": { - "description": "Array of characteristic properties calculated by this subworkflow", - "type": "array", - "items": { - "description": "property names, eg. `band_gaps`, `band_structure`", - "type": "string" - } - }, - "compute": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "compute arguments schema", - "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", - "type": "object", - "required": [ - "queue", - "nodes", - "ppn", - "timeLimit" - ], - "properties": { - "queue": { - "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", - "type": "string", - "enum": [ - "D", - "OR", - "OF", - "OFplus", - "SR", - "SF", - "SFplus", - "GPOF", - "GP2OF", - "GP4OF", - "GPSF", - "GP2SF", - "GP4SF", - "OR4", - "OR8", - "OR16", - "SR4", - "SR8", - "SR16", - "GOF", - "G4OF", - "G8OF", - "GSF", - "G4SF", - "G8SF" - ] - }, - "nodes": { - "description": "number of nodes used for the job inside the RMS.", - "type": "integer" - }, - "ppn": { - "description": "number of CPUs used for the job inside the RMS.", - "type": "integer" - }, - "timeLimit": { - "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", - "type": "string" - }, - "timeLimitType": { - "description": "Convention to use when reasoning about time limits", - "type": "string", - "default": "per single attempt", - "enum": [ - "per single attempt", - "compound" - ] - }, - "isRestartable": { - "description": "Job is allowed to restart on termination.", - "type": "boolean", - "default": true - }, - "notify": { - "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", - "type": "string" }, - "email": { - "description": "Email address to notify about job execution.", - "type": "string" + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } }, - "maxCPU": { - "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", - "type": "integer" + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } }, - "arguments": { - "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", - "default": {}, - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "quantum espresso arguments schema", - "type": "object", - "additionalProperties": false, - "properties": { - "nimage": { - "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "npools": { - "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "nband": { - "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "ntg": { - "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "ndiag": { - "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } } } }, - "cluster": { - "description": "Cluster where the job is executed. Optional on create. Required on job submission.", - "type": "object", - "properties": { - "fqdn": { - "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", - "type": "string" - }, - "jid": { - "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", - "type": "string" + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } } } }, - "errors": { - "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { "type": "array", "items": { "type": "object", + "required": [ + "trackedAt", + "status" + ], "properties": { - "domain": { - "description": "Domain of the error appearance (internal).", - "type": "string", - "enum": [ - "rupy", - "alfred", - "celim", - "webapp" - ] - }, - "reason": { - "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", - "type": "string" + "trackedAt": { + "type": "number" }, - "message": { - "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "status": { "type": "string" }, - "traceback": { - "description": "Full machine-readable error traceback. e.g. FileNotFound", - "type": "string" + "repetition": { + "type": "number" } } } }, - "excludeFilesPattern": { - "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", - "type": "string" - } - } - } - } - } - }, - "units": { - "description": "Contains the Units of the Workflow", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit schema", - "type": "object", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "source", - "subtype", - "type" - ], - "additionalProperties": true, - "properties": { + "isDraft": { + "type": "boolean" + }, "type": { - "const": "io", "description": "type of the unit", + "type": "string", + "const": "io" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "subtype": { "enum": [ "input", @@ -4684,65 +4551,46 @@ "oneOf": [ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO rest API input schema", + "title": "data IO database ids input/output schema", "type": "object", "properties": { - "endpoint": { - "description": "rest API endpoint", - "type": "string" - }, - "endpoint_options": { - "description": "rest API endpoint options", - "type": "object" + "type": { + "const": "db_ids" }, - "name": { - "description": "the name of the variable in local scope to save the data under", - "type": "string" + "ids": { + "description": "IDs of item to retrieve from db", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "endpoint", - "endpoint_options" - ], - "additionalProperties": true + "type", + "ids" + ] }, { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO database input/output schema", + "title": "data IO database collection input/output schema", "type": "object", - "oneOf": [ - { - "properties": { - "ids": { - "description": "IDs of item to retrieve from db", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "ids" - ], - "additionalProperties": true + "properties": { + "type": { + "const": "db_collection" }, - { - "properties": { - "collection": { - "description": "db collection name", - "type": "string" - }, - "draft": { - "description": "whether the result should be saved as draft", - "type": "boolean" - } - }, - "required": [ - "collection", - "draft" - ], - "additionalProperties": true + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "description": "whether the result should be saved as draft", + "type": "boolean" } + }, + "required": [ + "type", + "collection", + "draft" ] }, { @@ -4750,10 +4598,13 @@ "title": "object_storage io schema", "type": "object", "required": [ + "type", "objectData" ], - "additionalProperties": true, "properties": { + "type": { + "const": "object_storage" + }, "objectData": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Object Storage Container Data", @@ -4804,50 +4655,34 @@ } } } - ] + ], + "discriminator": { + "propertyName": "type" + } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "reduce unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "mapFlowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -4860,6 +4695,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -4870,29 +4709,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -4900,29 +4727,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -4930,59 +4745,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -4992,6 +4783,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -5012,26 +4814,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "reduce unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "mapFlowchartId", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "reduce", "description": "type of the unit", + "type": "string", + "const": "reduce" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "mapFlowchartId": { "description": "corresponding map unit flowchart ID", "type": "string" @@ -5059,48 +4866,32 @@ } } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "condition unit schema", + "type": "object", + "required": [ + "else", + "flowchartId", + "input", + "maxOccurrences", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "then", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -5113,6 +4904,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -5123,29 +4918,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -5153,29 +4936,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -5183,29 +4954,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -5213,29 +4972,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -5245,6 +4992,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -5265,29 +5023,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "condition unit schema", - "type": "object", - "required": [ - "else", - "flowchartId", - "input", - "maxOccurrences", - "statement", - "then", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "condition", "description": "type of the unit", + "type": "string", + "const": "condition" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "input": { "description": "Input information for condition.", "type": "array", @@ -5330,48 +5090,28 @@ "throwException": { "description": "Throw exception on reaching to maximum occurence.", "type": "boolean" - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assertion unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -5384,6 +5124,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -5394,29 +5138,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -5424,29 +5156,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -5454,29 +5174,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -5484,29 +5192,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -5516,6 +5212,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -5536,55 +5243,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "assertion unit schema", - "type": "object", - "required": [ - "flowchartId", - "name", - "statement", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "assertion", - "description": "type of the unit", - "type": "string" - }, - "statement": { - "type": "string", - "description": "The statement to be evaluated" - }, - "errorMessage": { - "type": "string", - "description": "The error message to be displayed if the assertion fails" - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assertion" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -5602,8 +5268,35 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "statement": { + "type": "string", + "description": "The statement to be evaluated" + }, + "errorMessage": { + "type": "string", + "description": "The error message to be displayed if the assertion fails" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit schema (base)", + "type": "object", + "required": [ + "application", + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -5617,6 +5310,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -5627,29 +5324,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -5657,29 +5342,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -5687,29 +5360,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -5717,29 +5378,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -5749,6 +5398,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -5769,56 +5429,43 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit schema (base)", - "type": "object", - "required": [ - "application", - "flowchartId", - "input", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "execution", "description": "type of the unit", + "type": "string", + "const": "execution" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", + "title": "application schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -5843,6 +5490,30 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } }, @@ -5851,24 +5522,14 @@ "title": "executable schema", "type": "object", "required": [ - "name" + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" ], "properties": { - "name": { - "description": "The name of the executable. e.g. pw.x", - "type": "string" - }, - "applicationId": { - "description": "_ids of the application this executable belongs to", - "type": "array", - "items": { - "type": "string" - } - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -5885,6 +5546,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -5895,29 +5560,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -5925,29 +5578,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -5955,109 +5596,64 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } - } - } - }, - "flavor": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "flavor schema", - "type": "object", - "properties": { - "executableId": { - "description": "_id of the executable this flavor belongs to", - "type": "string" - }, - "executableName": { - "description": "name of the executable this flavor belongs to", - "type": "string" }, - "applicationName": { - "description": "name of the application this flavor belongs to", - "type": "string" - }, - "input": { - "title": "execution unit input schema", + "results": { + "description": "names of the results for this calculation", "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input id item schema for physics-based simulation engines", + "title": "runtime item name object schema", "type": "object", - "additionalProperties": false, + "required": [ + "name" + ], "properties": { - "templateId": { - "type": "string" - }, - "templateName": { - "type": "string" - }, "name": { - "description": "name of the resulting input file, if different than template name", + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } } } }, - "supportedApplicationVersions": { - "description": "list of application versions this flavor supports", + "applicationId": { + "description": "_ids of the application this executable belongs to", "type": "array", "items": { "type": "string" } }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } + }, + "flavor": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor schema", + "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { "_id": { "description": "entity identity", "type": "string" @@ -6088,29 +5684,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -6118,29 +5702,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -6148,29 +5720,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -6178,238 +5738,171 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - } - } - }, - "input": { - "description": "unit input (type to be specified by the application's execution unit)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, "required": [ "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "execution unit input id item schema for physics-based simulation engines", "type": "object", + "additionalProperties": false, "properties": { + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "name of the resulting input file, if different than template name", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + } + } + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { "type": "string" } - ] + } } }, - "results": { - "description": "names of the results for this calculation", + "input": { "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + "title": "execution unit input item schema", + "type": "object", + "required": [ + "rendered", + "isManuallyChanged", + "template" + ], + "properties": { + "template": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "template schema", "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", "type": "string" } - }, - "required": [ - "name" - ] + } }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" + }, + "isManuallyChanged": { + "type": "boolean", + "default": false } - ] - } - }, - "tags": { - "description": "entity tags", - "type": "array", - "items": { - "type": "string" + } } }, - "statusTrack": { + "context": { "type": "array", "items": { "type": "object", "required": [ - "trackedAt", - "status" + "name", + "isEdited", + "data" ], "properties": { - "trackedAt": { - "type": "number" + "name": { + "type": "string", + "tsType": "ContextProviderNameEnum" }, - "status": { - "type": "string" + "isEdited": { + "type": "boolean" }, - "repetition": { - "type": "number" + "data": { + "type": "object" + }, + "extraData": { + "type": "object" } } } @@ -6422,100 +5915,20 @@ "type": "object", "required": [ "flowchartId", + "monitors", "name", "operand", + "postProcessors", + "preProcessors", + "results", "type", "value" ], - "additionalProperties": true, "properties": { - "type": { - "const": "assignment", - "description": "type of the unit", - "type": "string" - }, - "input": { - "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit input schema", - "type": "object", - "required": [ - "scope", - "name" - ], - "properties": { - "scope": { - "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", - "type": "string" - }, - "name": { - "description": "Name of the input data. e.g. total_energy", - "type": "string" - } - } - } - }, - "operand": { - "description": "Name of the global variable. e.g. 'x'", - "type": "string" - }, - "value": { - "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", - "oneOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -6528,6 +5941,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -6538,59 +5955,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -6598,29 +5991,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -6628,29 +6009,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -6660,6 +6029,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -6681,61 +6061,13 @@ } } }, - "scope": { - "type": "string" - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "processing unit schema", - "type": "object", - "required": [ - "flowchartId", - "inputData", - "operation", - "operationType", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "processing", - "description": "type of the unit", - "type": "string" - }, - "operation": { - "description": "Contains information about the operation used.", - "type": "string" - }, - "operationType": { - "description": "Contains information about the specific type of the operation used.", - "type": "string" - }, - "inputData": { - "description": "unit input (type to be specified by the child units)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assignment" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -6753,8 +6085,72 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "scope": { + "type": "string" + }, + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", + "type": "object", + "required": [ + "scope", + "name" + ], + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + } + } + } + }, + "operand": { + "description": "Name of the global variable. e.g. 'x'", + "type": "string" + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "oneOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "processing unit schema", + "type": "object", + "required": [ + "flowchartId", + "inputData", + "monitors", + "name", + "operation", + "operationType", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -6768,6 +6164,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -6778,29 +6178,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -6808,59 +6196,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -6868,29 +6232,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -6900,6 +6252,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -6920,92 +6283,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "map unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "type", - "workflowId" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "map", - "description": "type of the unit", - "type": "string" - }, - "workflowId": { - "description": "Id of workflow to run inside map", - "type": "string" - }, - "input": { - "description": "Input information for map.", - "type": "object", - "required": [ - "target" - ], - "properties": { - "target": { - "description": "Name of the target variable to substitute using the values below. e.g. K_POINTS", - "type": "string" - }, - "scope": { - "description": "Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.", - "type": "string" - }, - "name": { - "description": "Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.", - "type": "string" - }, - "values": { - "description": "Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution", - "type": "array", - "items": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "object" - } - ] - } - }, - "useValues": { - "type": "boolean" - } - } - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "processing" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -7023,8 +6308,38 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "inputData": { + "description": "unit input (type to be specified by the child units)" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "map unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type", + "workflowId" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -7038,6 +6353,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -7048,29 +6367,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -7078,29 +6385,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -7108,59 +6403,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -7170,6 +6441,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -7190,45 +6472,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "subworkflow unit schema", - "type": "object", - "required": [ - "type", - "flowchartId" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "subworkflow", - "description": "type of the unit", - "type": "string" - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "map" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -7246,8 +6497,70 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "workflowId": { + "description": "Id of workflow to run inside map", + "type": "string" + }, + "input": { + "description": "Input information for map.", + "type": "object", + "required": [ + "target" + ], + "properties": { + "target": { + "description": "Name of the target variable to substitute using the values below. e.g. K_POINTS", + "type": "string" + }, + "scope": { + "description": "Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.", + "type": "string" + }, + "name": { + "description": "Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.", + "type": "string" + }, + "values": { + "description": "Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution", + "type": "array", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + } + ] + } + }, + "useValues": { + "type": "boolean" + } + } + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "subworkflow unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -7261,6 +6574,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -7271,29 +6588,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -7301,29 +6606,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -7331,29 +6624,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -7361,29 +6642,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -7393,6 +6662,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -7413,6 +6693,30 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "subworkflow" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" } } } diff --git a/dist/js/schema/software/application.json b/dist/js/schema/software/application.json index 40e3ed819..63abbe6ca 100644 --- a/dist/js/schema/software/application.json +++ b/dist/js/schema/software/application.json @@ -1,34 +1,16 @@ { "$id": "software/application", "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", + "title": "application schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -53,6 +35,30 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } } \ No newline at end of file diff --git a/dist/js/schema/software/application_properties.json b/dist/js/schema/software/application_properties.json new file mode 100644 index 000000000..d319ff335 --- /dev/null +++ b/dist/js/schema/software/application_properties.json @@ -0,0 +1,38 @@ +{ + "$id": "software/application-properties", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "application properties schema", + "type": "object", + "required": [ + "shortName", + "summary", + "version", + "build" + ], + "properties": { + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/dist/js/schema/software/executable.json b/dist/js/schema/software/executable.json index 5c3f34b47..6cf7fa617 100644 --- a/dist/js/schema/software/executable.json +++ b/dist/js/schema/software/executable.json @@ -4,24 +4,14 @@ "title": "executable schema", "type": "object", "required": [ - "name" + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" ], "properties": { - "name": { - "description": "The name of the executable. e.g. pw.x", - "type": "string" - }, - "applicationId": { - "description": "_ids of the application this executable belongs to", - "type": "array", - "items": { - "type": "string" - } - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -38,6 +28,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -48,29 +42,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -78,29 +60,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -108,29 +78,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -138,30 +96,29 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } + } + }, + "applicationId": { + "description": "_ids of the application this executable belongs to", + "type": "array", + "items": { + "type": "string" } + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" } } } \ No newline at end of file diff --git a/dist/js/schema/software/executable_properties.json b/dist/js/schema/software/executable_properties.json new file mode 100644 index 000000000..a49da7c66 --- /dev/null +++ b/dist/js/schema/software/executable_properties.json @@ -0,0 +1,27 @@ +{ + "$id": "software/executable-properties", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "executable properties schema", + "type": "object", + "required": [ + "name", + "applicationId" + ], + "properties": { + "name": { + "description": "The name of the executable. e.g. pw.x", + "type": "string" + }, + "applicationId": { + "description": "_ids of the application this executable belongs to", + "type": "array", + "items": { + "type": "string" + } + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/dist/js/schema/software/flavor.json b/dist/js/schema/software/flavor.json index 4175c5214..4362ec5d6 100644 --- a/dist/js/schema/software/flavor.json +++ b/dist/js/schema/software/flavor.json @@ -3,48 +3,16 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "flavor schema", "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], "properties": { - "executableId": { - "description": "_id of the executable this flavor belongs to", - "type": "string" - }, - "executableName": { - "description": "name of the executable this flavor belongs to", - "type": "string" - }, - "applicationName": { - "description": "name of the application this flavor belongs to", - "type": "string" - }, - "input": { - "title": "execution unit input schema", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input id item schema for physics-based simulation engines", - "type": "object", - "additionalProperties": false, - "properties": { - "templateId": { - "type": "string" - }, - "templateName": { - "type": "string" - }, - "name": { - "description": "name of the resulting input file, if different than template name", - "type": "string" - } - } - } - }, - "supportedApplicationVersions": { - "description": "list of application versions this flavor supports", - "type": "array", - "items": { - "type": "string" - } - }, "_id": { "description": "entity identity", "type": "string" @@ -75,29 +43,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -105,29 +61,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -135,29 +79,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -165,29 +97,58 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object", + "additionalProperties": false, + "properties": { + "templateId": { + "type": "string" }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "templateName": { + "type": "string" + }, + "name": { + "description": "name of the resulting input file, if different than template name", "type": "string" } - ] + } + } + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { + "type": "string" } } } diff --git a/dist/js/schema/software/flavor_properties.json b/dist/js/schema/software/flavor_properties.json new file mode 100644 index 000000000..cae735816 --- /dev/null +++ b/dist/js/schema/software/flavor_properties.json @@ -0,0 +1,53 @@ +{ + "$id": "software/flavor-properties", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor properties schema", + "type": "object", + "required": [ + "executableId", + "input" + ], + "properties": { + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object", + "additionalProperties": false, + "properties": { + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + }, + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + } + } + } + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { + "type": "string" + } + } + } +} \ No newline at end of file diff --git a/dist/js/schema/software/template.json b/dist/js/schema/software/template.json index 282b2b04d..8cbcd9907 100644 --- a/dist/js/schema/software/template.json +++ b/dist/js/schema/software/template.json @@ -4,10 +4,33 @@ "title": "template schema", "type": "object", "required": [ + "applicationName", "content", + "contextProviders", + "executableName", "name" ], "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, "applicationName": { "type": "string" }, @@ -21,7 +44,7 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", "required": [ "name" @@ -34,36 +57,9 @@ } } }, - "isManuallyChanged": { - "type": "boolean" - }, - "name": { - "description": "Input file name. e.g. pw_scf.in", - "type": "string" - }, "content": { - "description": "Content of the input file. e.g. &CONTROL calculation='scf' ...", - "type": "string" - }, - "rendered": { - "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", - "type": "string" - }, - "_id": { - "description": "entity identity", - "type": "string" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" } } } \ No newline at end of file diff --git a/dist/js/schema/software/template_properties.json b/dist/js/schema/software/template_properties.json new file mode 100644 index 000000000..1d98d6c19 --- /dev/null +++ b/dist/js/schema/software/template_properties.json @@ -0,0 +1,44 @@ +{ + "$id": "software/template-properties", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "template properties schema", + "type": "object", + "required": [ + "applicationName", + "executableName", + "contextProviders", + "content" + ], + "properties": { + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", + "type": "string" + } + } +} \ No newline at end of file diff --git a/dist/js/schema/software_directory/modeling/deepmd.json b/dist/js/schema/software_directory/modeling/deepmd.json index b22c97510..4cdc9f297 100644 --- a/dist/js/schema/software_directory/modeling/deepmd.json +++ b/dist/js/schema/software_directory/modeling/deepmd.json @@ -3,7 +3,13 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "DeePMD app schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { "name": { "enum": [ @@ -33,22 +39,6 @@ "python" ] }, - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -69,6 +59,22 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } } \ No newline at end of file diff --git a/dist/js/schema/software_directory/modeling/nwchem.json b/dist/js/schema/software_directory/modeling/nwchem.json index 674568b01..c98d6039d 100644 --- a/dist/js/schema/software_directory/modeling/nwchem.json +++ b/dist/js/schema/software_directory/modeling/nwchem.json @@ -3,7 +3,13 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "NWChem", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { "name": { "enum": [ @@ -32,22 +38,6 @@ "nwchem" ] }, - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -68,6 +58,22 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } } \ No newline at end of file diff --git a/dist/js/schema/software_directory/modeling/unit/execution.json b/dist/js/schema/software_directory/modeling/unit/execution.json index ff4c7b8ea..23a46c10d 100644 --- a/dist/js/schema/software_directory/modeling/unit/execution.json +++ b/dist/js/schema/software_directory/modeling/unit/execution.json @@ -7,45 +7,186 @@ "application", "flowchartId", "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", "type" ], - "additionalProperties": true, "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "execution", "description": "type of the unit", + "type": "string", + "const": "execution" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", + "title": "application schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -70,6 +211,30 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } }, @@ -78,24 +243,14 @@ "title": "executable schema", "type": "object", "required": [ - "name" + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" ], "properties": { - "name": { - "description": "The name of the executable. e.g. pw.x", - "type": "string" - }, - "applicationId": { - "description": "_ids of the application this executable belongs to", - "type": "array", - "items": { - "type": "string" - } - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -112,6 +267,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -122,29 +281,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -152,29 +299,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -182,109 +317,64 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } - } - } - }, - "flavor": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "flavor schema", - "type": "object", - "properties": { - "executableId": { - "description": "_id of the executable this flavor belongs to", - "type": "string" - }, - "executableName": { - "description": "name of the executable this flavor belongs to", - "type": "string" - }, - "applicationName": { - "description": "name of the application this flavor belongs to", - "type": "string" }, - "input": { - "title": "execution unit input schema", + "results": { + "description": "names of the results for this calculation", "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input id item schema for physics-based simulation engines", + "title": "runtime item name object schema", "type": "object", - "additionalProperties": false, + "required": [ + "name" + ], "properties": { - "templateId": { - "type": "string" - }, - "templateName": { - "type": "string" - }, "name": { - "description": "name of the resulting input file, if different than template name", + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } } } }, - "supportedApplicationVersions": { - "description": "list of application versions this flavor supports", + "applicationId": { + "description": "_ids of the application this executable belongs to", "type": "array", "items": { "type": "string" } }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } + }, + "flavor": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor schema", + "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { "_id": { "description": "entity identity", "type": "string" @@ -315,29 +405,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -345,29 +423,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -375,29 +441,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -405,66 +459,39 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - } - } - }, - "input": { - "description": "unit input (type to be specified by the application's execution unit)", - "title": "execution unit input schema", - "type": "array", - "items": { - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input item schema for physics-based simulation engines", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { - "description": "Input file name. e.g. pw_scf.in", - "type": "string" - }, - "content": { - "description": "Content of the input file. e.g. &CONTROL calculation='scf' ...", - "type": "string" - }, - "rendered": { - "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name", - "content" - ] - }, - { + } + } + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "execution unit input id item schema for physics-based simulation engines", "type": "object", + "additionalProperties": false, "properties": { "templateId": { "type": "string" @@ -476,214 +503,232 @@ "description": "name of the resulting input file, if different than template name", "type": "string" } - }, - "additionalProperties": false + } } - ] - } - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { "type": "string" } - ] + } } }, - "postProcessors": { - "description": "names of the post-processors for this calculation", + "input": { "type": "array", + "title": "execution unit input schema", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", + "title": "execution unit input item schema", + "type": "object", + "required": [ + "rendered", + "isManuallyChanged", + "template" + ], "oneOf": [ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "execution unit input item schema", "type": "object", "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", + "template": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "template schema", + "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", + "type": "string" + } + } + }, + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" + }, + "isManuallyChanged": { + "type": "boolean", + "default": false } }, "required": [ - "name" + "rendered", + "isManuallyChanged", + "template" ] }, { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "execution unit input id item schema for physics-based simulation engines", "type": "object", "properties": { + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "name of the resulting input file, if different than template name", "type": "string" } }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + "additionalProperties": false } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + ], + "properties": { + "template": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "template schema", "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", "type": "string" } - }, - "required": [ - "name" - ] + } }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" + }, + "isManuallyChanged": { + "type": "boolean", + "default": false } - ] - } - }, - "tags": { - "description": "entity tags", - "type": "array", - "items": { - "type": "string" + } } }, - "statusTrack": { + "context": { "type": "array", "items": { "type": "object", "required": [ - "trackedAt", - "status" + "name", + "isEdited", + "data" ], "properties": { - "trackedAt": { - "type": "number" + "name": { + "type": "string", + "tsType": "ContextProviderNameEnum" }, - "status": { - "type": "string" + "isEdited": { + "type": "boolean" }, - "repetition": { - "type": "number" + "data": { + "type": "object" + }, + "extraData": { + "type": "object" } } } diff --git a/dist/js/schema/software_directory/modeling/vasp.json b/dist/js/schema/software_directory/modeling/vasp.json index 9428e3f7e..329361d8f 100644 --- a/dist/js/schema/software_directory/modeling/vasp.json +++ b/dist/js/schema/software_directory/modeling/vasp.json @@ -3,7 +3,13 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "vienna ab-inito simulation package", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { "name": { "enum": [ @@ -38,22 +44,6 @@ "vasp" ] }, - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -74,6 +64,22 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } } \ No newline at end of file diff --git a/dist/js/schema/software_directory/scripting/jupyter_lab.json b/dist/js/schema/software_directory/scripting/jupyter_lab.json index a2e5de364..d09ff1b53 100644 --- a/dist/js/schema/software_directory/scripting/jupyter_lab.json +++ b/dist/js/schema/software_directory/scripting/jupyter_lab.json @@ -3,7 +3,13 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Jupyter Lab Application Schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { "name": { "enum": [ @@ -36,22 +42,6 @@ "jupyter" ] }, - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -72,6 +62,22 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } } \ No newline at end of file diff --git a/dist/js/schema/software_directory/scripting/python.json b/dist/js/schema/software_directory/scripting/python.json index 63d65befb..2c625f7d4 100644 --- a/dist/js/schema/software_directory/scripting/python.json +++ b/dist/js/schema/software_directory/scripting/python.json @@ -3,7 +3,13 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Python Programing Language Schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { "name": { "enum": [ @@ -50,22 +56,6 @@ "description": "Optional Python dependencies, e.g. amqp==1.4.6", "type": "array" }, - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -86,6 +76,22 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } } \ No newline at end of file diff --git a/dist/js/schema/software_directory/scripting/shell.json b/dist/js/schema/software_directory/scripting/shell.json index 5c083b4df..82193cb06 100644 --- a/dist/js/schema/software_directory/scripting/shell.json +++ b/dist/js/schema/software_directory/scripting/shell.json @@ -3,7 +3,13 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Shell Scripting Language Schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { "name": { "enum": [ @@ -50,22 +56,6 @@ "description": "Optional environment variables exported before running the Shell script", "type": "object" }, - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -86,6 +76,22 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } } \ No newline at end of file diff --git a/dist/js/schema/software_directory/scripting/unit/execution.json b/dist/js/schema/software_directory/scripting/unit/execution.json index 43cf4f0f6..06bfbbadc 100644 --- a/dist/js/schema/software_directory/scripting/unit/execution.json +++ b/dist/js/schema/software_directory/scripting/unit/execution.json @@ -7,45 +7,186 @@ "application", "flowchartId", "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", "type" ], - "additionalProperties": true, "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "execution", "description": "type of the unit", + "type": "string", + "const": "execution" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", + "title": "application schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -70,6 +211,30 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } }, @@ -78,24 +243,14 @@ "title": "executable schema", "type": "object", "required": [ - "name" + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" ], "properties": { - "name": { - "description": "The name of the executable. e.g. pw.x", - "type": "string" - }, - "applicationId": { - "description": "_ids of the application this executable belongs to", - "type": "array", - "items": { - "type": "string" - } - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -112,6 +267,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -122,29 +281,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -152,29 +299,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -182,109 +317,64 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } - } - } - }, - "flavor": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "flavor schema", - "type": "object", - "properties": { - "executableId": { - "description": "_id of the executable this flavor belongs to", - "type": "string" - }, - "executableName": { - "description": "name of the executable this flavor belongs to", - "type": "string" - }, - "applicationName": { - "description": "name of the application this flavor belongs to", - "type": "string" }, - "input": { - "title": "execution unit input schema", + "results": { + "description": "names of the results for this calculation", "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input id item schema for physics-based simulation engines", + "title": "runtime item name object schema", "type": "object", - "additionalProperties": false, + "required": [ + "name" + ], "properties": { - "templateId": { - "type": "string" - }, - "templateName": { - "type": "string" - }, "name": { - "description": "name of the resulting input file, if different than template name", + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } } } }, - "supportedApplicationVersions": { - "description": "list of application versions this flavor supports", + "applicationId": { + "description": "_ids of the application this executable belongs to", "type": "array", "items": { "type": "string" } }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } + }, + "flavor": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor schema", + "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { "_id": { "description": "entity identity", "type": "string" @@ -315,29 +405,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -345,29 +423,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -375,29 +441,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -405,66 +459,39 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - } - } - }, - "input": { - "description": "unit input (type to be specified by the application's execution unit)", - "title": "execution unit input schema", - "type": "array", - "items": { - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input item schema for physics-based simulation engines", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { - "description": "Input file name. e.g. pw_scf.in", - "type": "string" - }, - "content": { - "description": "Content of the input file. e.g. &CONTROL calculation='scf' ...", - "type": "string" - }, - "rendered": { - "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name", - "content" - ] - }, - { + } + } + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "execution unit input id item schema for physics-based simulation engines", "type": "object", + "additionalProperties": false, "properties": { "templateId": { "type": "string" @@ -476,214 +503,232 @@ "description": "name of the resulting input file, if different than template name", "type": "string" } - }, - "additionalProperties": false + } } - ] - } - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { "type": "string" } - ] + } } }, - "postProcessors": { - "description": "names of the post-processors for this calculation", + "input": { "type": "array", + "title": "execution unit input schema", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", + "title": "execution unit input item schema", + "type": "object", + "required": [ + "rendered", + "isManuallyChanged", + "template" + ], "oneOf": [ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "execution unit input item schema", "type": "object", "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", + "template": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "template schema", + "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", + "type": "string" + } + } + }, + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" + }, + "isManuallyChanged": { + "type": "boolean", + "default": false } }, "required": [ - "name" + "rendered", + "isManuallyChanged", + "template" ] }, { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "execution unit input id item schema for physics-based simulation engines", "type": "object", "properties": { + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "name of the resulting input file, if different than template name", "type": "string" } }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + "additionalProperties": false } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + ], + "properties": { + "template": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "template schema", "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", "type": "string" } - }, - "required": [ - "name" - ] + } }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" + }, + "isManuallyChanged": { + "type": "boolean", + "default": false } - ] - } - }, - "tags": { - "description": "entity tags", - "type": "array", - "items": { - "type": "string" + } } }, - "statusTrack": { + "context": { "type": "array", "items": { "type": "object", "required": [ - "trackedAt", - "status" + "name", + "isEdited", + "data" ], "properties": { - "trackedAt": { - "type": "number" + "name": { + "type": "string", + "tsType": "ContextProviderNameEnum" }, - "status": { - "type": "string" + "isEdited": { + "type": "boolean" }, - "repetition": { - "type": "number" + "data": { + "type": "object" + }, + "extraData": { + "type": "object" } } } diff --git a/dist/js/schema/system/name.json b/dist/js/schema/system/name.json index 09342822f..bd23795aa 100644 --- a/dist/js/schema/system/name.json +++ b/dist/js/schema/system/name.json @@ -3,6 +3,9 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "name entity schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "entity name", diff --git a/dist/js/schema/system/path_entity.json b/dist/js/schema/system/path_entity.json index fb6f00185..52c8b70b2 100644 --- a/dist/js/schema/system/path_entity.json +++ b/dist/js/schema/system/path_entity.json @@ -3,6 +3,9 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "path entity schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "entity name", diff --git a/dist/js/schema/system/runtime_item.json b/dist/js/schema/system/runtime_item.json new file mode 100644 index 000000000..e9ccdb177 --- /dev/null +++ b/dist/js/schema/system/runtime_item.json @@ -0,0 +1,15 @@ +{ + "$id": "system/runtime-item", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } +} \ No newline at end of file diff --git a/dist/js/schema/system/runtime_items.json b/dist/js/schema/system/runtime_items.json new file mode 100644 index 000000000..162687421 --- /dev/null +++ b/dist/js/schema/system/runtime_items.json @@ -0,0 +1,86 @@ +{ + "$id": "system/runtime-items", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime items schema", + "type": "object", + "required": [ + "preProcessors", + "postProcessors", + "monitors", + "results" + ], + "properties": { + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + } + } +} \ No newline at end of file diff --git a/dist/js/schema/workflow.json b/dist/js/schema/workflow.json index cb32d0dfe..8e04a7096 100644 --- a/dist/js/schema/workflow.json +++ b/dist/js/schema/workflow.json @@ -4,8 +4,9 @@ "title": "workflow schema", "type": "object", "required": [ - "units", - "subworkflows" + "name", + "subworkflows", + "units" ], "properties": { "subworkflows": { @@ -13,7 +14,7 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Subworkflow", + "title": "Subworkflow Schema", "type": "object", "required": [ "application", @@ -22,6 +23,211 @@ "units" ], "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "properties": { + "description": "Array of characteristic properties calculated by this subworkflow", + "type": "array", + "items": { + "description": "property names, eg. `band_gaps`, `band_structure`", + "type": "string" + } + }, + "compute": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "compute arguments schema", + "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", + "type": "object", + "required": [ + "queue", + "nodes", + "ppn", + "timeLimit" + ], + "properties": { + "queue": { + "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", + "type": "string", + "enum": [ + "D", + "OR", + "OF", + "OFplus", + "SR", + "SF", + "SFplus", + "GPOF", + "GP2OF", + "GP4OF", + "GPSF", + "GP2SF", + "GP4SF", + "OR4", + "OR8", + "OR16", + "SR4", + "SR8", + "SR16", + "GOF", + "G4OF", + "G8OF", + "GSF", + "G4SF", + "G8SF" + ] + }, + "nodes": { + "description": "number of nodes used for the job inside the RMS.", + "type": "integer" + }, + "ppn": { + "description": "number of CPUs used for the job inside the RMS.", + "type": "integer" + }, + "timeLimit": { + "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", + "type": "string" + }, + "timeLimitType": { + "description": "Convention to use when reasoning about time limits", + "type": "string", + "default": "per single attempt", + "enum": [ + "per single attempt", + "compound" + ] + }, + "isRestartable": { + "description": "Job is allowed to restart on termination.", + "type": "boolean", + "default": true + }, + "notify": { + "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", + "type": "string" + }, + "email": { + "description": "Email address to notify about job execution.", + "type": "string" + }, + "maxCPU": { + "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", + "type": "integer" + }, + "arguments": { + "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", + "default": {}, + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "quantum espresso arguments schema", + "type": "object", + "additionalProperties": false, + "properties": { + "nimage": { + "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "npools": { + "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "nband": { + "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "ntg": { + "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "ndiag": { + "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + } + } + }, + "cluster": { + "description": "Cluster where the job is executed. Optional on create. Required on job submission.", + "type": "object", + "properties": { + "fqdn": { + "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", + "type": "string" + }, + "jid": { + "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", + "type": "string" + } + } + }, + "errors": { + "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "type": "array", + "items": { + "type": "object", + "properties": { + "domain": { + "description": "Domain of the error appearance (internal).", + "type": "string", + "enum": [ + "rupy", + "alfred", + "celim", + "webapp" + ] + }, + "reason": { + "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", + "type": "string" + }, + "message": { + "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "type": "string" + }, + "traceback": { + "description": "Full machine-readable error traceback. e.g. FileNotFound", + "type": "string" + } + } + } + }, + "excludeFilesPattern": { + "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", + "type": "string" + } + } + }, "units": { "description": "Contains the Units of the subworkflow", "type": "array", @@ -37,17 +243,176 @@ "required": [ "flowchartId", "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", "source", "subtype", "type" ], - "additionalProperties": true, "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "io", "description": "type of the unit", + "type": "string", + "const": "io" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "subtype": { "enum": [ "input", @@ -68,65 +433,46 @@ "oneOf": [ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO rest API input schema", + "title": "data IO database ids input/output schema", "type": "object", "properties": { - "endpoint": { - "description": "rest API endpoint", - "type": "string" - }, - "endpoint_options": { - "description": "rest API endpoint options", - "type": "object" + "type": { + "const": "db_ids" }, - "name": { - "description": "the name of the variable in local scope to save the data under", - "type": "string" + "ids": { + "description": "IDs of item to retrieve from db", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "endpoint", - "endpoint_options" - ], - "additionalProperties": true + "type", + "ids" + ] }, { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO database input/output schema", + "title": "data IO database collection input/output schema", "type": "object", - "oneOf": [ - { - "properties": { - "ids": { - "description": "IDs of item to retrieve from db", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "ids" - ], - "additionalProperties": true + "properties": { + "type": { + "const": "db_collection" }, - { - "properties": { - "collection": { - "description": "db collection name", - "type": "string" - }, - "draft": { - "description": "whether the result should be saved as draft", - "type": "boolean" - } - }, - "required": [ - "collection", - "draft" - ], - "additionalProperties": true + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "description": "whether the result should be saved as draft", + "type": "boolean" } + }, + "required": [ + "type", + "collection", + "draft" ] }, { @@ -134,10 +480,13 @@ "title": "object_storage io schema", "type": "object", "required": [ + "type", "objectData" ], - "additionalProperties": true, "properties": { + "type": { + "const": "object_storage" + }, "objectData": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Object Storage Container Data", @@ -188,50 +537,34 @@ } } } - ] + ], + "discriminator": { + "propertyName": "type" + } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "reduce unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "mapFlowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -244,6 +577,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -254,29 +591,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -284,29 +609,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -314,29 +627,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -344,29 +645,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -376,6 +665,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -396,26 +696,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "reduce unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "mapFlowchartId", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "reduce", "description": "type of the unit", + "type": "string", + "const": "reduce" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "mapFlowchartId": { "description": "corresponding map unit flowchart ID", "type": "string" @@ -443,48 +748,32 @@ } } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "condition unit schema", + "type": "object", + "required": [ + "else", + "flowchartId", + "input", + "maxOccurrences", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "then", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -497,6 +786,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -507,29 +800,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -537,29 +818,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -567,29 +836,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -597,29 +854,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -629,6 +874,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -649,29 +905,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "condition unit schema", - "type": "object", - "required": [ - "else", - "flowchartId", - "input", - "maxOccurrences", - "statement", - "then", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "condition", "description": "type of the unit", + "type": "string", + "const": "condition" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", "type": "string" }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "input": { "description": "Input information for condition.", "type": "array", @@ -699,62 +957,42 @@ "description": "Condition statement. e.g. 'abs(x-total_energy) < 1e-5'", "type": "string" }, - "then": { - "description": "Flowchart ID reference for `then` part of the condition.", - "type": "string" - }, - "else": { - "description": "Flowchart ID reference for `else` part of the condition.", - "type": "string" - }, - "maxOccurrences": { - "description": "Maximum occurrence of the condition, usable for loops.", - "type": "integer" - }, - "throwException": { - "description": "Throw exception on reaching to maximum occurence.", - "type": "boolean" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "then": { + "description": "Flowchart ID reference for `then` part of the condition.", "type": "string" }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "else": { + "description": "Flowchart ID reference for `else` part of the condition.", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" + "maxOccurrences": { + "description": "Maximum occurrence of the condition, usable for loops.", + "type": "integer" }, - "context": { - "type": "object" + "throwException": { + "description": "Throw exception on reaching to maximum occurence.", + "type": "boolean" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assertion unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -768,6 +1006,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -778,29 +1020,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -808,29 +1038,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -838,29 +1056,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -868,29 +1074,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -900,6 +1094,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -920,55 +1125,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "assertion unit schema", - "type": "object", - "required": [ - "flowchartId", - "name", - "statement", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "assertion", - "description": "type of the unit", - "type": "string" - }, - "statement": { - "type": "string", - "description": "The statement to be evaluated" - }, - "errorMessage": { - "type": "string", - "description": "The error message to be displayed if the assertion fails" - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assertion" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -986,8 +1150,35 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "statement": { + "type": "string", + "description": "The statement to be evaluated" + }, + "errorMessage": { + "type": "string", + "description": "The error message to be displayed if the assertion fails" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit schema (base)", + "type": "object", + "required": [ + "application", + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -1001,6 +1192,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -1011,29 +1206,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1041,29 +1224,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1071,29 +1242,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1101,29 +1260,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -1133,315 +1280,138 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { "type": "object", "required": [ - "trackedAt", - "status" - ], - "properties": { - "trackedAt": { - "type": "number" - }, - "status": { - "type": "string" - }, - "repetition": { - "type": "number" - } - } - } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit schema (base)", - "type": "object", - "required": [ - "application", - "flowchartId", - "input", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "execution", - "description": "type of the unit", - "type": "string" - }, - "application": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", - "type": "object", - "additionalProperties": true, - "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, - "_id": { - "description": "entity identity", - "type": "string" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "name": { - "description": "entity name", - "type": "string" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - } - } - }, - "executable": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "executable schema", - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "description": "The name of the executable. e.g. pw.x", - "type": "string" - }, - "applicationId": { - "description": "_ids of the application this executable belongs to", - "type": "array", - "items": { - "type": "string" - } - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "_id": { - "description": "entity identity", - "type": "string" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" } } } }, - "flavor": { + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "execution" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "flavor schema", + "title": "application schema", "type": "object", + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { - "executableId": { - "description": "_id of the executable this flavor belongs to", + "_id": { + "description": "entity identity", "type": "string" }, - "executableName": { - "description": "name of the executable this flavor belongs to", + "slug": { + "description": "entity slug", "type": "string" }, - "applicationName": { - "description": "name of the application this flavor belongs to", + "systemName": { "type": "string" }, - "input": { - "title": "execution unit input schema", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input id item schema for physics-based simulation engines", - "type": "object", - "additionalProperties": false, - "properties": { - "templateId": { - "type": "string" - }, - "templateName": { - "type": "string" - }, - "name": { - "description": "name of the resulting input file, if different than template name", - "type": "string" - } - } - } + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" }, - "supportedApplicationVersions": { - "description": "list of application versions this flavor supports", - "type": "array", - "items": { - "type": "string" - } + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + } + } + }, + "executable": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "executable schema", + "type": "object", + "required": [ + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { "_id": { "description": "entity identity", "type": "string" @@ -1472,29 +1442,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1502,29 +1460,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1532,29 +1478,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1562,344 +1496,321 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } - } - } - }, - "input": { - "description": "unit input (type to be specified by the application's execution unit)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false + }, + "applicationId": { + "description": "_ids of the application this executable belongs to", + "type": "array", + "items": { + "type": "string" + } + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + "flavor": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor schema", + "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", + "required": [ + "name" + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { + } + } + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object", + "additionalProperties": false, + "properties": { + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + }, + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + } + } + } + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { "type": "string" } - ] - } - }, - "tags": { - "description": "entity tags", - "type": "array", - "items": { - "type": "string" + } } }, - "statusTrack": { + "input": { "type": "array", "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit input item schema", "type": "object", "required": [ - "trackedAt", - "status" + "rendered", + "isManuallyChanged", + "template" ], "properties": { - "trackedAt": { - "type": "number" + "template": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "template schema", + "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", + "type": "string" + } + } }, - "status": { + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" }, - "repetition": { - "type": "number" + "isManuallyChanged": { + "type": "boolean", + "default": false } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "assignment unit schema", - "type": "object", - "required": [ - "flowchartId", - "name", - "operand", - "type", - "value" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "assignment", - "description": "type of the unit", - "type": "string" }, - "input": { - "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "context": { "type": "array", "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit input schema", "type": "object", "required": [ - "scope", - "name" + "name", + "isEdited", + "data" ], "properties": { - "scope": { - "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", - "type": "string" - }, "name": { - "description": "Name of the input data. e.g. total_energy", - "type": "string" + "type": "string", + "tsType": "ContextProviderNameEnum" + }, + "isEdited": { + "type": "boolean" + }, + "data": { + "type": "object" + }, + "extraData": { + "type": "object" } } } - }, - "operand": { - "description": "Name of the global variable. e.g. 'x'", - "type": "string" - }, - "value": { - "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", - "oneOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assignment unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "operand", + "postProcessors", + "preProcessors", + "results", + "type", + "value" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -1912,6 +1823,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -1922,29 +1837,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1952,29 +1855,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1982,29 +1873,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -2012,29 +1891,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2044,6 +1911,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -2065,61 +1943,13 @@ } } }, - "scope": { - "type": "string" - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "processing unit schema", - "type": "object", - "required": [ - "flowchartId", - "inputData", - "operation", - "operationType", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "processing", - "description": "type of the unit", - "type": "string" - }, - "operation": { - "description": "Contains information about the operation used.", - "type": "string" - }, - "operationType": { - "description": "Contains information about the specific type of the operation used.", - "type": "string" - }, - "inputData": { - "description": "unit input (type to be specified by the child units)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assignment" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -2137,8 +1967,72 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "scope": { + "type": "string" + }, + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", + "type": "object", + "required": [ + "scope", + "name" + ], + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + } + } + } + }, + "operand": { + "description": "Name of the global variable. e.g. 'x'", + "type": "string" + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "oneOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "processing unit schema", + "type": "object", + "required": [ + "flowchartId", + "inputData", + "monitors", + "name", + "operation", + "operationType", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -2152,6 +2046,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -2162,29 +2060,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -2192,29 +2078,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -2222,29 +2096,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -2252,29 +2114,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2284,6 +2134,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -2304,6 +2165,41 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "processing" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "inputData": { + "description": "unit input (type to be specified by the child units)" } } } @@ -2366,34 +2262,100 @@ }, "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", + "title": "application schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + } + } + }, + "isDraft": { + "description": "Defines whether to store the results/properties extracted in this unit to properties collection", + "type": "boolean", + "default": false + } + } + } + }, + "units": { + "description": "Contains the Units of the Workflow", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit schema", + "type": "object", + "oneOf": [ + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "data IO unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "source", + "subtype", + "type" + ], "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -2418,236 +2380,142 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - } - } - }, - "isDraft": { - "description": "Defines whether to store the results/properties extracted in this unit to properties collection", - "type": "boolean", - "default": false - }, - "_id": { - "description": "subworkflow identity", - "type": "string" - }, - "name": { - "description": "Human-readable name of the subworkflow. e.g. Total-energy", - "type": "string" - }, - "properties": { - "description": "Array of characteristic properties calculated by this subworkflow", - "type": "array", - "items": { - "description": "property names, eg. `band_gaps`, `band_structure`", - "type": "string" - } - }, - "compute": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "compute arguments schema", - "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", - "type": "object", - "required": [ - "queue", - "nodes", - "ppn", - "timeLimit" - ], - "properties": { - "queue": { - "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", - "type": "string", - "enum": [ - "D", - "OR", - "OF", - "OFplus", - "SR", - "SF", - "SFplus", - "GPOF", - "GP2OF", - "GP4OF", - "GPSF", - "GP2SF", - "GP4SF", - "OR4", - "OR8", - "OR16", - "SR4", - "SR8", - "SR16", - "GOF", - "G4OF", - "G8OF", - "GSF", - "G4SF", - "G8SF" - ] - }, - "nodes": { - "description": "number of nodes used for the job inside the RMS.", - "type": "integer" - }, - "ppn": { - "description": "number of CPUs used for the job inside the RMS.", - "type": "integer" - }, - "timeLimit": { - "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", - "type": "string" - }, - "timeLimitType": { - "description": "Convention to use when reasoning about time limits", - "type": "string", - "default": "per single attempt", - "enum": [ - "per single attempt", - "compound" - ] - }, - "isRestartable": { - "description": "Job is allowed to restart on termination.", - "type": "boolean", - "default": true - }, - "notify": { - "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", - "type": "string" }, - "email": { - "description": "Email address to notify about job execution.", - "type": "string" + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } }, - "maxCPU": { - "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", - "type": "integer" + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } }, - "arguments": { - "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", - "default": {}, - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "quantum espresso arguments schema", - "type": "object", - "additionalProperties": false, - "properties": { - "nimage": { - "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "npools": { - "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "nband": { - "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "ntg": { - "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "ndiag": { - "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } } } }, - "cluster": { - "description": "Cluster where the job is executed. Optional on create. Required on job submission.", - "type": "object", - "properties": { - "fqdn": { - "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", - "type": "string" - }, - "jid": { - "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", - "type": "string" + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } } } }, - "errors": { - "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { "type": "array", "items": { "type": "object", + "required": [ + "trackedAt", + "status" + ], "properties": { - "domain": { - "description": "Domain of the error appearance (internal).", - "type": "string", - "enum": [ - "rupy", - "alfred", - "celim", - "webapp" - ] - }, - "reason": { - "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", - "type": "string" + "trackedAt": { + "type": "number" }, - "message": { - "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "status": { "type": "string" }, - "traceback": { - "description": "Full machine-readable error traceback. e.g. FileNotFound", - "type": "string" + "repetition": { + "type": "number" } } } }, - "excludeFilesPattern": { - "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", - "type": "string" - } - } - } - } - } - }, - "units": { - "description": "Contains the Units of the Workflow", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit schema", - "type": "object", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "source", - "subtype", - "type" - ], - "additionalProperties": true, - "properties": { + "isDraft": { + "type": "boolean" + }, "type": { - "const": "io", "description": "type of the unit", + "type": "string", + "const": "io" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "subtype": { "enum": [ "input", @@ -2668,65 +2536,46 @@ "oneOf": [ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO rest API input schema", + "title": "data IO database ids input/output schema", "type": "object", "properties": { - "endpoint": { - "description": "rest API endpoint", - "type": "string" - }, - "endpoint_options": { - "description": "rest API endpoint options", - "type": "object" + "type": { + "const": "db_ids" }, - "name": { - "description": "the name of the variable in local scope to save the data under", - "type": "string" + "ids": { + "description": "IDs of item to retrieve from db", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "endpoint", - "endpoint_options" - ], - "additionalProperties": true + "type", + "ids" + ] }, { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO database input/output schema", + "title": "data IO database collection input/output schema", "type": "object", - "oneOf": [ - { - "properties": { - "ids": { - "description": "IDs of item to retrieve from db", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "ids" - ], - "additionalProperties": true + "properties": { + "type": { + "const": "db_collection" }, - { - "properties": { - "collection": { - "description": "db collection name", - "type": "string" - }, - "draft": { - "description": "whether the result should be saved as draft", - "type": "boolean" - } - }, - "required": [ - "collection", - "draft" - ], - "additionalProperties": true + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "description": "whether the result should be saved as draft", + "type": "boolean" } + }, + "required": [ + "type", + "collection", + "draft" ] }, { @@ -2734,10 +2583,13 @@ "title": "object_storage io schema", "type": "object", "required": [ + "type", "objectData" ], - "additionalProperties": true, "properties": { + "type": { + "const": "object_storage" + }, "objectData": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Object Storage Container Data", @@ -2788,50 +2640,34 @@ } } } - ] + ], + "discriminator": { + "propertyName": "type" + } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "reduce unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "mapFlowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -2844,6 +2680,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -2854,29 +2694,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -2884,29 +2712,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -2914,59 +2730,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2976,6 +2768,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -2996,26 +2799,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "reduce unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "mapFlowchartId", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "reduce", "description": "type of the unit", + "type": "string", + "const": "reduce" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "mapFlowchartId": { "description": "corresponding map unit flowchart ID", "type": "string" @@ -3043,48 +2851,32 @@ } } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "condition unit schema", + "type": "object", + "required": [ + "else", + "flowchartId", + "input", + "maxOccurrences", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "then", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -3097,6 +2889,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -3107,29 +2903,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -3137,29 +2921,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -3167,29 +2939,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -3197,29 +2957,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -3229,6 +2977,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -3249,29 +3008,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "condition unit schema", - "type": "object", - "required": [ - "else", - "flowchartId", - "input", - "maxOccurrences", - "statement", - "then", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "condition", "description": "type of the unit", + "type": "string", + "const": "condition" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "input": { "description": "Input information for condition.", "type": "array", @@ -3314,48 +3075,28 @@ "throwException": { "description": "Throw exception on reaching to maximum occurence.", "type": "boolean" - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assertion unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -3368,6 +3109,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -3378,29 +3123,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -3408,29 +3141,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -3438,29 +3159,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -3468,29 +3177,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -3500,6 +3197,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -3520,55 +3228,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "assertion unit schema", - "type": "object", - "required": [ - "flowchartId", - "name", - "statement", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "assertion", - "description": "type of the unit", - "type": "string" - }, - "statement": { - "type": "string", - "description": "The statement to be evaluated" - }, - "errorMessage": { - "type": "string", - "description": "The error message to be displayed if the assertion fails" - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assertion" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -3586,8 +3253,35 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "statement": { + "type": "string", + "description": "The statement to be evaluated" + }, + "errorMessage": { + "type": "string", + "description": "The error message to be displayed if the assertion fails" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit schema (base)", + "type": "object", + "required": [ + "application", + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -3601,6 +3295,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -3611,29 +3309,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -3641,29 +3327,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -3671,29 +3345,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -3701,29 +3363,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -3733,6 +3383,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -3753,56 +3414,43 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit schema (base)", - "type": "object", - "required": [ - "application", - "flowchartId", - "input", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "execution", "description": "type of the unit", + "type": "string", + "const": "execution" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", + "title": "application schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -3827,6 +3475,30 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } }, @@ -3835,24 +3507,14 @@ "title": "executable schema", "type": "object", "required": [ - "name" + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" ], "properties": { - "name": { - "description": "The name of the executable. e.g. pw.x", - "type": "string" - }, - "applicationId": { - "description": "_ids of the application this executable belongs to", - "type": "array", - "items": { - "type": "string" - } - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -3869,6 +3531,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -3879,29 +3545,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -3909,29 +3563,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -3939,109 +3581,64 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } - } - } - }, - "flavor": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "flavor schema", - "type": "object", - "properties": { - "executableId": { - "description": "_id of the executable this flavor belongs to", - "type": "string" - }, - "executableName": { - "description": "name of the executable this flavor belongs to", - "type": "string" }, - "applicationName": { - "description": "name of the application this flavor belongs to", - "type": "string" - }, - "input": { - "title": "execution unit input schema", + "results": { + "description": "names of the results for this calculation", "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input id item schema for physics-based simulation engines", + "title": "runtime item name object schema", "type": "object", - "additionalProperties": false, + "required": [ + "name" + ], "properties": { - "templateId": { - "type": "string" - }, - "templateName": { - "type": "string" - }, "name": { - "description": "name of the resulting input file, if different than template name", + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } } } }, - "supportedApplicationVersions": { - "description": "list of application versions this flavor supports", + "applicationId": { + "description": "_ids of the application this executable belongs to", "type": "array", "items": { "type": "string" } }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } + }, + "flavor": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor schema", + "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { "_id": { "description": "entity identity", "type": "string" @@ -4072,29 +3669,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -4102,29 +3687,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -4132,29 +3705,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -4162,238 +3723,171 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - } - } - }, - "input": { - "description": "unit input (type to be specified by the application's execution unit)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, "required": [ "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "execution unit input id item schema for physics-based simulation engines", "type": "object", + "additionalProperties": false, "properties": { + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "name of the resulting input file, if different than template name", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + } + } + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { "type": "string" } - ] + } } }, - "results": { - "description": "names of the results for this calculation", + "input": { "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + "title": "execution unit input item schema", + "type": "object", + "required": [ + "rendered", + "isManuallyChanged", + "template" + ], + "properties": { + "template": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "template schema", "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", "type": "string" } - }, - "required": [ - "name" - ] + } }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" + }, + "isManuallyChanged": { + "type": "boolean", + "default": false } - ] - } - }, - "tags": { - "description": "entity tags", - "type": "array", - "items": { - "type": "string" + } } }, - "statusTrack": { + "context": { "type": "array", "items": { "type": "object", "required": [ - "trackedAt", - "status" + "name", + "isEdited", + "data" ], "properties": { - "trackedAt": { - "type": "number" + "name": { + "type": "string", + "tsType": "ContextProviderNameEnum" }, - "status": { - "type": "string" + "isEdited": { + "type": "boolean" }, - "repetition": { - "type": "number" + "data": { + "type": "object" + }, + "extraData": { + "type": "object" } } } @@ -4406,100 +3900,20 @@ "type": "object", "required": [ "flowchartId", + "monitors", "name", "operand", + "postProcessors", + "preProcessors", + "results", "type", "value" ], - "additionalProperties": true, "properties": { - "type": { - "const": "assignment", - "description": "type of the unit", - "type": "string" - }, - "input": { - "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit input schema", - "type": "object", - "required": [ - "scope", - "name" - ], - "properties": { - "scope": { - "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", - "type": "string" - }, - "name": { - "description": "Name of the input data. e.g. total_energy", - "type": "string" - } - } - } - }, - "operand": { - "description": "Name of the global variable. e.g. 'x'", - "type": "string" - }, - "value": { - "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", - "oneOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -4512,6 +3926,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -4522,59 +3940,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -4582,29 +3976,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -4612,29 +3994,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -4644,6 +4014,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -4665,61 +4046,13 @@ } } }, - "scope": { - "type": "string" - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "processing unit schema", - "type": "object", - "required": [ - "flowchartId", - "inputData", - "operation", - "operationType", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "processing", - "description": "type of the unit", - "type": "string" - }, - "operation": { - "description": "Contains information about the operation used.", - "type": "string" - }, - "operationType": { - "description": "Contains information about the specific type of the operation used.", - "type": "string" - }, - "inputData": { - "description": "unit input (type to be specified by the child units)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assignment" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -4737,8 +4070,72 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "scope": { + "type": "string" + }, + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", + "type": "object", + "required": [ + "scope", + "name" + ], + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + } + } + } + }, + "operand": { + "description": "Name of the global variable. e.g. 'x'", + "type": "string" + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "oneOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "processing unit schema", + "type": "object", + "required": [ + "flowchartId", + "inputData", + "monitors", + "name", + "operation", + "operationType", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -4752,6 +4149,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -4762,29 +4163,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -4792,59 +4181,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -4852,29 +4217,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -4884,6 +4237,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -4904,92 +4268,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "map unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "type", - "workflowId" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "map", - "description": "type of the unit", - "type": "string" - }, - "workflowId": { - "description": "Id of workflow to run inside map", - "type": "string" - }, - "input": { - "description": "Input information for map.", - "type": "object", - "required": [ - "target" - ], - "properties": { - "target": { - "description": "Name of the target variable to substitute using the values below. e.g. K_POINTS", - "type": "string" - }, - "scope": { - "description": "Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.", - "type": "string" - }, - "name": { - "description": "Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.", - "type": "string" - }, - "values": { - "description": "Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution", - "type": "array", - "items": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "object" - } - ] - } - }, - "useValues": { - "type": "boolean" - } - } - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "processing" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -5007,8 +4293,38 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "inputData": { + "description": "unit input (type to be specified by the child units)" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "map unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type", + "workflowId" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -5022,6 +4338,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -5032,29 +4352,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -5062,29 +4370,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -5092,59 +4388,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -5154,6 +4426,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -5174,45 +4457,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "subworkflow unit schema", - "type": "object", - "required": [ - "type", - "flowchartId" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "subworkflow", - "description": "type of the unit", - "type": "string" - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "map" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -5230,8 +4482,70 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "workflowId": { + "description": "Id of workflow to run inside map", + "type": "string" + }, + "input": { + "description": "Input information for map.", + "type": "object", + "required": [ + "target" + ], + "properties": { + "target": { + "description": "Name of the target variable to substitute using the values below. e.g. K_POINTS", + "type": "string" + }, + "scope": { + "description": "Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.", + "type": "string" + }, + "name": { + "description": "Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.", + "type": "string" + }, + "values": { + "description": "Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution", + "type": "array", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + } + ] + } + }, + "useValues": { + "type": "boolean" + } + } + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "subworkflow unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -5245,6 +4559,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -5255,29 +4573,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -5285,29 +4591,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -5315,29 +4609,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -5345,29 +4627,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -5377,6 +4647,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -5397,6 +4678,30 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "subworkflow" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" } } } diff --git a/dist/js/schema/workflow/base.json b/dist/js/schema/workflow/base.json index 513a582b4..bb6206a15 100644 --- a/dist/js/schema/workflow/base.json +++ b/dist/js/schema/workflow/base.json @@ -3,6 +3,9 @@ "$schema": "http://json-schema.org/draft-07/schema#", "title": "base workflow schema", "type": "object", + "required": [ + "name" + ], "properties": { "properties": { "description": "Array of characteristic properties calculated by this workflow (TODO: add enums)", diff --git a/dist/js/schema/workflow/subworkflow.json b/dist/js/schema/workflow/subworkflow.json index 314a3faf6..847075ccd 100644 --- a/dist/js/schema/workflow/subworkflow.json +++ b/dist/js/schema/workflow/subworkflow.json @@ -1,7 +1,7 @@ { "$id": "workflow/subworkflow", "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Subworkflow", + "title": "Subworkflow Schema", "type": "object", "required": [ "application", @@ -10,6 +10,211 @@ "units" ], "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "properties": { + "description": "Array of characteristic properties calculated by this subworkflow", + "type": "array", + "items": { + "description": "property names, eg. `band_gaps`, `band_structure`", + "type": "string" + } + }, + "compute": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "compute arguments schema", + "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", + "type": "object", + "required": [ + "queue", + "nodes", + "ppn", + "timeLimit" + ], + "properties": { + "queue": { + "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", + "type": "string", + "enum": [ + "D", + "OR", + "OF", + "OFplus", + "SR", + "SF", + "SFplus", + "GPOF", + "GP2OF", + "GP4OF", + "GPSF", + "GP2SF", + "GP4SF", + "OR4", + "OR8", + "OR16", + "SR4", + "SR8", + "SR16", + "GOF", + "G4OF", + "G8OF", + "GSF", + "G4SF", + "G8SF" + ] + }, + "nodes": { + "description": "number of nodes used for the job inside the RMS.", + "type": "integer" + }, + "ppn": { + "description": "number of CPUs used for the job inside the RMS.", + "type": "integer" + }, + "timeLimit": { + "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", + "type": "string" + }, + "timeLimitType": { + "description": "Convention to use when reasoning about time limits", + "type": "string", + "default": "per single attempt", + "enum": [ + "per single attempt", + "compound" + ] + }, + "isRestartable": { + "description": "Job is allowed to restart on termination.", + "type": "boolean", + "default": true + }, + "notify": { + "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", + "type": "string" + }, + "email": { + "description": "Email address to notify about job execution.", + "type": "string" + }, + "maxCPU": { + "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", + "type": "integer" + }, + "arguments": { + "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", + "default": {}, + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "quantum espresso arguments schema", + "type": "object", + "additionalProperties": false, + "properties": { + "nimage": { + "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "npools": { + "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "nband": { + "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "ntg": { + "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "ndiag": { + "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + } + } + }, + "cluster": { + "description": "Cluster where the job is executed. Optional on create. Required on job submission.", + "type": "object", + "properties": { + "fqdn": { + "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", + "type": "string" + }, + "jid": { + "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", + "type": "string" + } + } + }, + "errors": { + "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "type": "array", + "items": { + "type": "object", + "properties": { + "domain": { + "description": "Domain of the error appearance (internal).", + "type": "string", + "enum": [ + "rupy", + "alfred", + "celim", + "webapp" + ] + }, + "reason": { + "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", + "type": "string" + }, + "message": { + "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "type": "string" + }, + "traceback": { + "description": "Full machine-readable error traceback. e.g. FileNotFound", + "type": "string" + } + } + } + }, + "excludeFilesPattern": { + "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", + "type": "string" + } + } + }, "units": { "description": "Contains the Units of the subworkflow", "type": "array", @@ -25,17 +230,176 @@ "required": [ "flowchartId", "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", "source", "subtype", "type" ], - "additionalProperties": true, "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "io", "description": "type of the unit", + "type": "string", + "const": "io" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "subtype": { "enum": [ "input", @@ -56,65 +420,46 @@ "oneOf": [ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO rest API input schema", + "title": "data IO database ids input/output schema", "type": "object", "properties": { - "endpoint": { - "description": "rest API endpoint", - "type": "string" - }, - "endpoint_options": { - "description": "rest API endpoint options", - "type": "object" + "type": { + "const": "db_ids" }, - "name": { - "description": "the name of the variable in local scope to save the data under", - "type": "string" + "ids": { + "description": "IDs of item to retrieve from db", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "endpoint", - "endpoint_options" - ], - "additionalProperties": true + "type", + "ids" + ] }, { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO database input/output schema", + "title": "data IO database collection input/output schema", "type": "object", - "oneOf": [ - { - "properties": { - "ids": { - "description": "IDs of item to retrieve from db", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "ids" - ], - "additionalProperties": true + "properties": { + "type": { + "const": "db_collection" }, - { - "properties": { - "collection": { - "description": "db collection name", - "type": "string" - }, - "draft": { - "description": "whether the result should be saved as draft", - "type": "boolean" - } - }, - "required": [ - "collection", - "draft" - ], - "additionalProperties": true + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "description": "whether the result should be saved as draft", + "type": "boolean" } + }, + "required": [ + "type", + "collection", + "draft" ] }, { @@ -122,10 +467,13 @@ "title": "object_storage io schema", "type": "object", "required": [ + "type", "objectData" ], - "additionalProperties": true, "properties": { + "type": { + "const": "object_storage" + }, "objectData": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Object Storage Container Data", @@ -176,50 +524,34 @@ } } } - ] + ], + "discriminator": { + "propertyName": "type" + } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "reduce unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "mapFlowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -232,6 +564,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -242,29 +578,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -272,29 +596,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -302,29 +614,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -332,29 +632,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -364,6 +652,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -383,27 +682,32 @@ "type": "number" } } - } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "reduce unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "mapFlowchartId", - "type" - ], - "additionalProperties": true, - "properties": { + } + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "reduce", "description": "type of the unit", + "type": "string", + "const": "reduce" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "mapFlowchartId": { "description": "corresponding map unit flowchart ID", "type": "string" @@ -431,48 +735,32 @@ } } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "condition unit schema", + "type": "object", + "required": [ + "else", + "flowchartId", + "input", + "maxOccurrences", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "then", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -485,6 +773,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -495,29 +787,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -525,29 +805,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -555,29 +823,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -585,29 +841,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -617,6 +861,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -637,29 +892,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "condition unit schema", - "type": "object", - "required": [ - "else", - "flowchartId", - "input", - "maxOccurrences", - "statement", - "then", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "condition", "description": "type of the unit", + "type": "string", + "const": "condition" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "input": { "description": "Input information for condition.", "type": "array", @@ -702,48 +959,28 @@ "throwException": { "description": "Throw exception on reaching to maximum occurence.", "type": "boolean" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assertion unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -756,6 +993,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -766,29 +1007,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -796,29 +1025,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -826,29 +1043,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -856,29 +1061,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -888,6 +1081,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -908,55 +1112,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "assertion unit schema", - "type": "object", - "required": [ - "flowchartId", - "name", - "statement", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "assertion", - "description": "type of the unit", - "type": "string" - }, - "statement": { - "type": "string", - "description": "The statement to be evaluated" - }, - "errorMessage": { - "type": "string", - "description": "The error message to be displayed if the assertion fails" - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assertion" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -974,8 +1137,35 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "statement": { + "type": "string", + "description": "The statement to be evaluated" + }, + "errorMessage": { + "type": "string", + "description": "The error message to be displayed if the assertion fails" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit schema (base)", + "type": "object", + "required": [ + "application", + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -989,6 +1179,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -999,29 +1193,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1029,59 +1211,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1089,29 +1247,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -1121,6 +1267,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -1141,56 +1298,43 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit schema (base)", - "type": "object", - "required": [ - "application", - "flowchartId", - "input", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "execution", "description": "type of the unit", + "type": "string", + "const": "execution" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", + "title": "application schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -1215,6 +1359,30 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } }, @@ -1223,24 +1391,14 @@ "title": "executable schema", "type": "object", "required": [ - "name" + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" ], "properties": { - "name": { - "description": "The name of the executable. e.g. pw.x", - "type": "string" - }, - "applicationId": { - "description": "_ids of the application this executable belongs to", - "type": "array", - "items": { - "type": "string" - } - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -1257,6 +1415,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -1267,29 +1429,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1297,29 +1447,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1327,29 +1465,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1357,79 +1483,46 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - } - } - }, - "flavor": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "flavor schema", - "type": "object", - "properties": { - "executableId": { - "description": "_id of the executable this flavor belongs to", - "type": "string" - }, - "executableName": { - "description": "name of the executable this flavor belongs to", - "type": "string" - }, - "applicationName": { - "description": "name of the application this flavor belongs to", - "type": "string" - }, - "input": { - "title": "execution unit input schema", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input id item schema for physics-based simulation engines", + "title": "runtime item name object schema", "type": "object", - "additionalProperties": false, + "required": [ + "name" + ], "properties": { - "templateId": { - "type": "string" - }, - "templateName": { - "type": "string" - }, "name": { - "description": "name of the resulting input file, if different than template name", + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } } } }, - "supportedApplicationVersions": { - "description": "list of application versions this flavor supports", + "applicationId": { + "description": "_ids of the application this executable belongs to", "type": "array", "items": { "type": "string" } }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } + }, + "flavor": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor schema", + "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { "_id": { "description": "entity identity", "type": "string" @@ -1460,29 +1553,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1490,29 +1571,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1520,29 +1589,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1550,238 +1607,171 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - } - } - }, - "input": { - "description": "unit input (type to be specified by the application's execution unit)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, "required": [ "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "execution unit input id item schema for physics-based simulation engines", "type": "object", + "additionalProperties": false, "properties": { + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "name of the resulting input file, if different than template name", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + } + } + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { "type": "string" } - ] + } } }, - "results": { - "description": "names of the results for this calculation", + "input": { "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + "title": "execution unit input item schema", + "type": "object", + "required": [ + "rendered", + "isManuallyChanged", + "template" + ], + "properties": { + "template": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "template schema", "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", "type": "string" } - }, - "required": [ - "name" - ] + } }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" + }, + "isManuallyChanged": { + "type": "boolean", + "default": false } - ] - } - }, - "tags": { - "description": "entity tags", - "type": "array", - "items": { - "type": "string" + } } }, - "statusTrack": { + "context": { "type": "array", "items": { "type": "object", "required": [ - "trackedAt", - "status" + "name", + "isEdited", + "data" ], "properties": { - "trackedAt": { - "type": "number" + "name": { + "type": "string", + "tsType": "ContextProviderNameEnum" }, - "status": { - "type": "string" + "isEdited": { + "type": "boolean" }, - "repetition": { - "type": "number" + "data": { + "type": "object" + }, + "extraData": { + "type": "object" } } } @@ -1794,100 +1784,20 @@ "type": "object", "required": [ "flowchartId", + "monitors", "name", "operand", + "postProcessors", + "preProcessors", + "results", "type", "value" ], - "additionalProperties": true, "properties": { - "type": { - "const": "assignment", - "description": "type of the unit", - "type": "string" - }, - "input": { - "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit input schema", - "type": "object", - "required": [ - "scope", - "name" - ], - "properties": { - "scope": { - "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", - "type": "string" - }, - "name": { - "description": "Name of the input data. e.g. total_energy", - "type": "string" - } - } - } - }, - "operand": { - "description": "Name of the global variable. e.g. 'x'", - "type": "string" - }, - "value": { - "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", - "oneOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -1900,6 +1810,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -1910,29 +1824,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1940,29 +1842,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1970,29 +1860,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -2000,61 +1878,125 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "status": { "type": "string" + }, + "repetition": { + "type": "number" } - ] + } } }, - "tags": { - "description": "entity tags", - "type": "array", - "items": { - "type": "string" - } + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "assignment" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "scope": { + "type": "string" }, - "statusTrack": { + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", "type": "array", "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", "type": "object", "required": [ - "trackedAt", - "status" + "scope", + "name" ], "properties": { - "trackedAt": { - "type": "number" - }, - "status": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", "type": "string" }, - "repetition": { - "type": "number" + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" } } } }, - "scope": { + "operand": { + "description": "Name of the global variable. e.g. 'x'", "type": "string" + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "oneOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] } } }, @@ -2065,69 +2007,20 @@ "required": [ "flowchartId", "inputData", + "monitors", + "name", "operation", "operationType", + "postProcessors", + "preProcessors", + "results", "type" ], - "additionalProperties": true, "properties": { - "type": { - "const": "processing", - "description": "type of the unit", - "type": "string" - }, - "operation": { - "description": "Contains information about the operation used.", - "type": "string" - }, - "operationType": { - "description": "Contains information about the specific type of the operation used.", - "type": "string" - }, - "inputData": { - "description": "unit input (type to be specified by the child units)" - }, "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "description": "entity identity", "type": "string" }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -2140,6 +2033,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -2150,29 +2047,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -2180,29 +2065,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -2210,29 +2083,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -2240,29 +2101,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2272,26 +2121,72 @@ "type": "string" } }, - "statusTrack": { - "type": "array", - "items": { - "type": "object", - "required": [ - "trackedAt", - "status" - ], - "properties": { - "trackedAt": { - "type": "number" - }, - "status": { - "type": "string" - }, - "repetition": { - "type": "number" - } - } - } + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "processing" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "inputData": { + "description": "unit input (type to be specified by the child units)" } } } @@ -2354,34 +2249,16 @@ }, "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", + "title": "application schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -2406,206 +2283,37 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false - } - } - }, - "isDraft": { - "description": "Defines whether to store the results/properties extracted in this unit to properties collection", - "type": "boolean", - "default": false - }, - "_id": { - "description": "subworkflow identity", - "type": "string" - }, - "name": { - "description": "Human-readable name of the subworkflow. e.g. Total-energy", - "type": "string" - }, - "properties": { - "description": "Array of characteristic properties calculated by this subworkflow", - "type": "array", - "items": { - "description": "property names, eg. `band_gaps`, `band_structure`", - "type": "string" - } - }, - "compute": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "compute arguments schema", - "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", - "type": "object", - "required": [ - "queue", - "nodes", - "ppn", - "timeLimit" - ], - "properties": { - "queue": { - "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", - "type": "string", - "enum": [ - "D", - "OR", - "OF", - "OFplus", - "SR", - "SF", - "SFplus", - "GPOF", - "GP2OF", - "GP4OF", - "GPSF", - "GP2SF", - "GP4SF", - "OR4", - "OR8", - "OR16", - "SR4", - "SR8", - "SR16", - "GOF", - "G4OF", - "G8OF", - "GSF", - "G4SF", - "G8SF" - ] - }, - "nodes": { - "description": "number of nodes used for the job inside the RMS.", - "type": "integer" - }, - "ppn": { - "description": "number of CPUs used for the job inside the RMS.", - "type": "integer" }, - "timeLimit": { - "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", + "shortName": { + "description": "The short name of the application. e.g. qe", "type": "string" }, - "timeLimitType": { - "description": "Convention to use when reasoning about time limits", - "type": "string", - "default": "per single attempt", - "enum": [ - "per single attempt", - "compound" - ] - }, - "isRestartable": { - "description": "Job is allowed to restart on termination.", - "type": "boolean", - "default": true - }, - "notify": { - "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", + "summary": { + "description": "Application's short description.", "type": "string" }, - "email": { - "description": "Email address to notify about job execution.", + "version": { + "description": "Application version. e.g. 5.3.5", "type": "string" }, - "maxCPU": { - "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", - "type": "integer" - }, - "arguments": { - "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", - "default": {}, - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "quantum espresso arguments schema", - "type": "object", - "additionalProperties": false, - "properties": { - "nimage": { - "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "npools": { - "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "nband": { - "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "ntg": { - "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - }, - "ndiag": { - "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", - "type": "integer", - "default": 1, - "minimum": 1, - "maximum": 100 - } - } - }, - "cluster": { - "description": "Cluster where the job is executed. Optional on create. Required on job submission.", - "type": "object", - "properties": { - "fqdn": { - "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", - "type": "string" - }, - "jid": { - "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", - "type": "string" - } - } + "build": { + "description": "Application build. e.g. VTST", + "type": "string" }, - "errors": { - "description": "Computation error. Optional. Appears only if something happens on jobs execution.", - "type": "array", - "items": { - "type": "object", - "properties": { - "domain": { - "description": "Domain of the error appearance (internal).", - "type": "string", - "enum": [ - "rupy", - "alfred", - "celim", - "webapp" - ] - }, - "reason": { - "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", - "type": "string" - }, - "message": { - "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", - "type": "string" - }, - "traceback": { - "description": "Full machine-readable error traceback. e.g. FileNotFound", - "type": "string" - } - } - } + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" }, - "excludeFilesPattern": { - "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", - "type": "string" + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } + }, + "isDraft": { + "description": "Defines whether to store the results/properties extracted in this unit to properties collection", + "type": "boolean", + "default": false } } } \ No newline at end of file diff --git a/dist/js/schema/workflow/subworkflow/mixin.json b/dist/js/schema/workflow/subworkflow/mixin.json new file mode 100644 index 000000000..efec99e33 --- /dev/null +++ b/dist/js/schema/workflow/subworkflow/mixin.json @@ -0,0 +1,2298 @@ +{ + "$id": "workflow/subworkflow/mixin", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Subworkflow Mixin Schema", + "type": "object", + "required": [ + "model", + "application", + "units" + ], + "properties": { + "properties": { + "description": "Array of characteristic properties calculated by this subworkflow", + "type": "array", + "items": { + "description": "property names, eg. `band_gaps`, `band_structure`", + "type": "string" + } + }, + "compute": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "compute arguments schema", + "description": "Custom keywords prefixed with validate correspond to custom validation methods implemented downstream", + "type": "object", + "required": [ + "queue", + "nodes", + "ppn", + "timeLimit" + ], + "properties": { + "queue": { + "description": "Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.", + "type": "string", + "enum": [ + "D", + "OR", + "OF", + "OFplus", + "SR", + "SF", + "SFplus", + "GPOF", + "GP2OF", + "GP4OF", + "GPSF", + "GP2SF", + "GP4SF", + "OR4", + "OR8", + "OR16", + "SR4", + "SR8", + "SR16", + "GOF", + "G4OF", + "G8OF", + "GSF", + "G4SF", + "G8SF" + ] + }, + "nodes": { + "description": "number of nodes used for the job inside the RMS.", + "type": "integer" + }, + "ppn": { + "description": "number of CPUs used for the job inside the RMS.", + "type": "integer" + }, + "timeLimit": { + "description": "Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'", + "type": "string" + }, + "timeLimitType": { + "description": "Convention to use when reasoning about time limits", + "type": "string", + "default": "per single attempt", + "enum": [ + "per single attempt", + "compound" + ] + }, + "isRestartable": { + "description": "Job is allowed to restart on termination.", + "type": "boolean", + "default": true + }, + "notify": { + "description": "Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.", + "type": "string" + }, + "email": { + "description": "Email address to notify about job execution.", + "type": "string" + }, + "maxCPU": { + "description": "Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.", + "type": "integer" + }, + "arguments": { + "description": "Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere", + "default": {}, + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "quantum espresso arguments schema", + "type": "object", + "additionalProperties": false, + "properties": { + "nimage": { + "description": "Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "npools": { + "description": "Each image can be subpartitioned into `pools`, each taking care of a group of k-points.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "nband": { + "description": "Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "ntg": { + "description": "In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + }, + "ndiag": { + "description": "A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.", + "type": "integer", + "default": 1, + "minimum": 1, + "maximum": 100 + } + } + }, + "cluster": { + "description": "Cluster where the job is executed. Optional on create. Required on job submission.", + "type": "object", + "properties": { + "fqdn": { + "description": "FQDN of the cluster. e.g. master-1-staging.exabyte.io", + "type": "string" + }, + "jid": { + "description": "Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io", + "type": "string" + } + } + }, + "errors": { + "description": "Computation error. Optional. Appears only if something happens on jobs execution.", + "type": "array", + "items": { + "type": "object", + "properties": { + "domain": { + "description": "Domain of the error appearance (internal).", + "type": "string", + "enum": [ + "rupy", + "alfred", + "celim", + "webapp" + ] + }, + "reason": { + "description": "Should be a short, unique, machine-readable error code string. e.g. FileNotFound", + "type": "string" + }, + "message": { + "description": "Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'", + "type": "string" + }, + "traceback": { + "description": "Full machine-readable error traceback. e.g. FileNotFound", + "type": "string" + } + } + } + }, + "excludeFilesPattern": { + "description": "A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix", + "type": "string" + } + } + }, + "units": { + "description": "Contains the Units of the subworkflow", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow subworkflow unit schema", + "type": "object", + "oneOf": [ + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "data IO unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "source", + "subtype", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "io" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "subtype": { + "enum": [ + "input", + "output", + "dataFrame" + ] + }, + "source": { + "enum": [ + "api", + "db", + "object_storage" + ] + }, + "input": { + "type": "array", + "items": { + "oneOf": [ + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "data IO database ids input/output schema", + "type": "object", + "properties": { + "type": { + "const": "db_ids" + }, + "ids": { + "description": "IDs of item to retrieve from db", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type", + "ids" + ] + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "data IO database collection input/output schema", + "type": "object", + "properties": { + "type": { + "const": "db_collection" + }, + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "description": "whether the result should be saved as draft", + "type": "boolean" + } + }, + "required": [ + "type", + "collection", + "draft" + ] + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "object_storage io schema", + "type": "object", + "required": [ + "type", + "objectData" + ], + "properties": { + "type": { + "const": "object_storage" + }, + "objectData": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Object Storage Container Data", + "type": "object", + "properties": { + "CONTAINER": { + "description": "Object storage container for the file", + "type": "string" + }, + "NAME": { + "description": "Name of the file inside the object storage bucket", + "type": "string" + }, + "PROVIDER": { + "description": "Object storage provider", + "type": "string" + }, + "REGION": { + "description": "Region for the object container specified in Container", + "type": "string" + }, + "SIZE": { + "description": "Size of the file in bytes", + "type": "integer" + }, + "TIMESTAMP": { + "description": "Unix timestamp showing when the file was last modified", + "type": "string" + } + } + }, + "overwrite": { + "description": "if a file with the same filename already exists, whether to overwrite the old file", + "type": "boolean" + }, + "pathname": { + "description": "Relative path to the directory that contains the file.", + "type": "string" + }, + "basename": { + "description": "Basename of the file", + "type": "string", + "$comment": "isGenerative:true" + }, + "filetype": { + "description": "What kind of file this is, e.g. image / text", + "type": "string" + } + } + } + ], + "discriminator": { + "propertyName": "type" + } + } + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "reduce unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "mapFlowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "reduce" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "mapFlowchartId": { + "description": "corresponding map unit flowchart ID", + "type": "string" + }, + "input": { + "description": "input information for reduce unit", + "type": "array", + "items": { + "type": "object", + "required": [ + "operation", + "arguments" + ], + "properties": { + "operation": { + "description": "reduce operation, e.g. aggregate", + "type": "string" + }, + "arguments": { + "description": "arguments which are passed to reduce operation function", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "condition unit schema", + "type": "object", + "required": [ + "else", + "flowchartId", + "input", + "maxOccurrences", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "then", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "condition" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "input": { + "description": "Input information for condition.", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", + "type": "object", + "required": [ + "scope", + "name" + ], + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + } + } + } + }, + "statement": { + "description": "Condition statement. e.g. 'abs(x-total_energy) < 1e-5'", + "type": "string" + }, + "then": { + "description": "Flowchart ID reference for `then` part of the condition.", + "type": "string" + }, + "else": { + "description": "Flowchart ID reference for `else` part of the condition.", + "type": "string" + }, + "maxOccurrences": { + "description": "Maximum occurrence of the condition, usable for loops.", + "type": "integer" + }, + "throwException": { + "description": "Throw exception on reaching to maximum occurence.", + "type": "boolean" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assertion unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "assertion" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "statement": { + "type": "string", + "description": "The statement to be evaluated" + }, + "errorMessage": { + "type": "string", + "description": "The error message to be displayed if the assertion fails" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit schema (base)", + "type": "object", + "required": [ + "application", + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "execution" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "application": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "application schema", + "type": "object", + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + } + } + }, + "executable": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "executable schema", + "type": "object", + "required": [ + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "applicationId": { + "description": "_ids of the application this executable belongs to", + "type": "array", + "items": { + "type": "string" + } + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } + }, + "flavor": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor schema", + "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object", + "additionalProperties": false, + "properties": { + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + }, + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + } + } + } + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "input": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit input item schema", + "type": "object", + "required": [ + "rendered", + "isManuallyChanged", + "template" + ], + "properties": { + "template": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "template schema", + "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", + "type": "string" + } + } + }, + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", + "type": "string" + }, + "isManuallyChanged": { + "type": "boolean", + "default": false + } + } + } + }, + "context": { + "type": "array", + "items": { + "type": "object", + "required": [ + "name", + "isEdited", + "data" + ], + "properties": { + "name": { + "type": "string", + "tsType": "ContextProviderNameEnum" + }, + "isEdited": { + "type": "boolean" + }, + "data": { + "type": "object" + }, + "extraData": { + "type": "object" + } + } + } + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assignment unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "operand", + "postProcessors", + "preProcessors", + "results", + "type", + "value" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "assignment" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "scope": { + "type": "string" + }, + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", + "type": "object", + "required": [ + "scope", + "name" + ], + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + } + } + } + }, + "operand": { + "description": "Name of the global variable. e.g. 'x'", + "type": "string" + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "oneOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "processing unit schema", + "type": "object", + "required": [ + "flowchartId", + "inputData", + "monitors", + "name", + "operation", + "operationType", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "processing" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "inputData": { + "description": "unit input (type to be specified by the child units)" + } + } + } + ], + "discriminator": { + "propertyName": "type" + }, + "required": [ + "type" + ] + } + }, + "model": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "base model", + "type": "object", + "required": [ + "type", + "subtype", + "method" + ], + "additionalProperties": true, + "properties": { + "type": { + "description": "general type of the model, eg. `dft`", + "type": "string" + }, + "subtype": { + "description": "general subtype of the model, eg. `lda`", + "type": "string" + }, + "method": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "base method", + "type": "object", + "required": [ + "type", + "subtype" + ], + "properties": { + "type": { + "description": "general type of this method, eg. `pseudopotential`", + "type": "string" + }, + "subtype": { + "description": "general subtype of this method, eg. `ultra-soft`", + "type": "string" + }, + "precision": { + "description": "Object showing the actual possible precision based on theory and implementation", + "type": "object" + }, + "data": { + "description": "additional data specific to method, eg. array of pseudopotentials", + "type": "object" + } + } + } + } + }, + "application": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "application schema", + "type": "object", + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + } + } + }, + "isDraft": { + "description": "Defines whether to store the results/properties extracted in this unit to properties collection", + "type": "boolean", + "default": false + } + } +} \ No newline at end of file diff --git a/dist/js/schema/workflow/subworkflow/unit.json b/dist/js/schema/workflow/subworkflow/unit.json index 1a648c625..4c226abff 100644 --- a/dist/js/schema/workflow/subworkflow/unit.json +++ b/dist/js/schema/workflow/subworkflow/unit.json @@ -11,17 +11,176 @@ "required": [ "flowchartId", "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", "source", "subtype", "type" ], - "additionalProperties": true, "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "io", "description": "type of the unit", + "type": "string", + "const": "io" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "subtype": { "enum": [ "input", @@ -42,65 +201,46 @@ "oneOf": [ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO rest API input schema", + "title": "data IO database ids input/output schema", "type": "object", "properties": { - "endpoint": { - "description": "rest API endpoint", - "type": "string" - }, - "endpoint_options": { - "description": "rest API endpoint options", - "type": "object" + "type": { + "const": "db_ids" }, - "name": { - "description": "the name of the variable in local scope to save the data under", - "type": "string" + "ids": { + "description": "IDs of item to retrieve from db", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "endpoint", - "endpoint_options" - ], - "additionalProperties": true + "type", + "ids" + ] }, { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO database input/output schema", + "title": "data IO database collection input/output schema", "type": "object", - "oneOf": [ - { - "properties": { - "ids": { - "description": "IDs of item to retrieve from db", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "ids" - ], - "additionalProperties": true + "properties": { + "type": { + "const": "db_collection" }, - { - "properties": { - "collection": { - "description": "db collection name", - "type": "string" - }, - "draft": { - "description": "whether the result should be saved as draft", - "type": "boolean" - } - }, - "required": [ - "collection", - "draft" - ], - "additionalProperties": true + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "description": "whether the result should be saved as draft", + "type": "boolean" } + }, + "required": [ + "type", + "collection", + "draft" ] }, { @@ -108,10 +248,13 @@ "title": "object_storage io schema", "type": "object", "required": [ + "type", "objectData" ], - "additionalProperties": true, "properties": { + "type": { + "const": "object_storage" + }, "objectData": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Object Storage Container Data", @@ -162,50 +305,34 @@ } } } - ] + ], + "discriminator": { + "propertyName": "type" + } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "reduce unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "mapFlowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", + "description": "entity identity", "type": "string" }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -218,6 +345,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -228,29 +359,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -258,29 +377,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -288,29 +395,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -318,29 +413,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -350,6 +433,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -370,26 +464,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "reduce unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "mapFlowchartId", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "reduce", "description": "type of the unit", + "type": "string", + "const": "reduce" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "mapFlowchartId": { "description": "corresponding map unit flowchart ID", "type": "string" @@ -417,48 +516,32 @@ } } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "condition unit schema", + "type": "object", + "required": [ + "else", + "flowchartId", + "input", + "maxOccurrences", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "then", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -471,6 +554,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -481,29 +568,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -511,29 +586,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -541,29 +604,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -571,29 +622,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -603,8 +642,19 @@ "type": "string" } }, - "statusTrack": { - "type": "array", + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", "items": { "type": "object", "required": [ @@ -623,29 +673,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "condition unit schema", - "type": "object", - "required": [ - "else", - "flowchartId", - "input", - "maxOccurrences", - "statement", - "then", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "condition", "description": "type of the unit", + "type": "string", + "const": "condition" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "input": { "description": "Input information for condition.", "type": "array", @@ -688,48 +740,28 @@ "throwException": { "description": "Throw exception on reaching to maximum occurence.", "type": "boolean" - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assertion unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -742,6 +774,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -752,29 +788,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -782,29 +806,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -812,29 +824,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -842,29 +842,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -874,6 +862,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -894,55 +893,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "assertion unit schema", - "type": "object", - "required": [ - "flowchartId", - "name", - "statement", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "assertion", - "description": "type of the unit", - "type": "string" - }, - "statement": { - "type": "string", - "description": "The statement to be evaluated" - }, - "errorMessage": { - "type": "string", - "description": "The error message to be displayed if the assertion fails" - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assertion" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -960,12 +918,39 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" - }, - "slug": { - "description": "entity slug", - "type": "string" + "statement": { + "type": "string", + "description": "The statement to be evaluated" + }, + "errorMessage": { + "type": "string", + "description": "The error message to be displayed if the assertion fails" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit schema (base)", + "type": "object", + "required": [ + "application", + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" }, "systemName": { "type": "string" @@ -975,6 +960,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -985,29 +974,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1015,29 +992,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1045,29 +1010,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1075,29 +1028,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -1107,6 +1048,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -1127,56 +1079,43 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit schema (base)", - "type": "object", - "required": [ - "application", - "flowchartId", - "input", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "execution", "description": "type of the unit", + "type": "string", + "const": "execution" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", + "title": "application schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -1201,6 +1140,30 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } }, @@ -1209,24 +1172,14 @@ "title": "executable schema", "type": "object", "required": [ - "name" + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" ], "properties": { - "name": { - "description": "The name of the executable. e.g. pw.x", - "type": "string" - }, - "applicationId": { - "description": "_ids of the application this executable belongs to", - "type": "array", - "items": { - "type": "string" - } - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -1243,6 +1196,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -1253,29 +1210,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1283,29 +1228,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1313,29 +1246,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1343,79 +1264,46 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - } - } - }, - "flavor": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "flavor schema", - "type": "object", - "properties": { - "executableId": { - "description": "_id of the executable this flavor belongs to", - "type": "string" - }, - "executableName": { - "description": "name of the executable this flavor belongs to", - "type": "string" - }, - "applicationName": { - "description": "name of the application this flavor belongs to", - "type": "string" - }, - "input": { - "title": "execution unit input schema", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input id item schema for physics-based simulation engines", + "title": "runtime item name object schema", "type": "object", - "additionalProperties": false, + "required": [ + "name" + ], "properties": { - "templateId": { - "type": "string" - }, - "templateName": { - "type": "string" - }, "name": { - "description": "name of the resulting input file, if different than template name", + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } } } }, - "supportedApplicationVersions": { - "description": "list of application versions this flavor supports", + "applicationId": { + "description": "_ids of the application this executable belongs to", "type": "array", "items": { "type": "string" } }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } + }, + "flavor": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor schema", + "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { "_id": { "description": "entity identity", "type": "string" @@ -1446,29 +1334,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1476,29 +1352,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1506,29 +1370,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1536,238 +1388,171 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - } - } - }, - "input": { - "description": "unit input (type to be specified by the application's execution unit)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, "required": [ "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "execution unit input id item schema for physics-based simulation engines", "type": "object", + "additionalProperties": false, "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", + "templateId": { "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + }, + "templateName": { + "type": "string" + }, + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + } + } + } + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { "type": "string" } - ] + } } }, - "results": { - "description": "names of the results for this calculation", + "input": { "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + "title": "execution unit input item schema", + "type": "object", + "required": [ + "rendered", + "isManuallyChanged", + "template" + ], + "properties": { + "template": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "template schema", "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", "type": "string" } - }, - "required": [ - "name" - ] + } }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" + }, + "isManuallyChanged": { + "type": "boolean", + "default": false } - ] - } - }, - "tags": { - "description": "entity tags", - "type": "array", - "items": { - "type": "string" + } } }, - "statusTrack": { + "context": { "type": "array", "items": { "type": "object", "required": [ - "trackedAt", - "status" + "name", + "isEdited", + "data" ], "properties": { - "trackedAt": { - "type": "number" + "name": { + "type": "string", + "tsType": "ContextProviderNameEnum" }, - "status": { - "type": "string" + "isEdited": { + "type": "boolean" }, - "repetition": { - "type": "number" + "data": { + "type": "object" + }, + "extraData": { + "type": "object" } } } @@ -1780,100 +1565,20 @@ "type": "object", "required": [ "flowchartId", + "monitors", "name", "operand", + "postProcessors", + "preProcessors", + "results", "type", "value" ], - "additionalProperties": true, "properties": { - "type": { - "const": "assignment", - "description": "type of the unit", - "type": "string" - }, - "input": { - "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit input schema", - "type": "object", - "required": [ - "scope", - "name" - ], - "properties": { - "scope": { - "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", - "type": "string" - }, - "name": { - "description": "Name of the input data. e.g. total_energy", - "type": "string" - } - } - } - }, - "operand": { - "description": "Name of the global variable. e.g. 'x'", - "type": "string" - }, - "value": { - "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", - "oneOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -1886,6 +1591,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -1896,29 +1605,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1926,29 +1623,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1956,29 +1641,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1986,29 +1659,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2018,6 +1679,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -2039,61 +1711,13 @@ } } }, - "scope": { - "type": "string" - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "processing unit schema", - "type": "object", - "required": [ - "flowchartId", - "inputData", - "operation", - "operationType", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "processing", - "description": "type of the unit", - "type": "string" - }, - "operation": { - "description": "Contains information about the operation used.", - "type": "string" - }, - "operationType": { - "description": "Contains information about the specific type of the operation used.", - "type": "string" - }, - "inputData": { - "description": "unit input (type to be specified by the child units)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assignment" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -2111,8 +1735,72 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "scope": { + "type": "string" + }, + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", + "type": "object", + "required": [ + "scope", + "name" + ], + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + } + } + } + }, + "operand": { + "description": "Name of the global variable. e.g. 'x'", + "type": "string" + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "oneOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "processing unit schema", + "type": "object", + "required": [ + "flowchartId", + "inputData", + "monitors", + "name", + "operation", + "operationType", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -2126,6 +1814,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -2136,29 +1828,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -2166,29 +1846,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -2196,29 +1864,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -2226,29 +1882,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2258,6 +1902,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -2278,6 +1933,41 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "processing" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "inputData": { + "description": "unit input (type to be specified by the child units)" } } } diff --git a/dist/js/schema/workflow/unit.json b/dist/js/schema/workflow/unit.json index bc2e91b03..4646c1ca4 100644 --- a/dist/js/schema/workflow/unit.json +++ b/dist/js/schema/workflow/unit.json @@ -11,17 +11,176 @@ "required": [ "flowchartId", "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", "source", "subtype", "type" ], - "additionalProperties": true, "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "io", "description": "type of the unit", + "type": "string", + "const": "io" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "subtype": { "enum": [ "input", @@ -42,65 +201,46 @@ "oneOf": [ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO rest API input schema", + "title": "data IO database ids input/output schema", "type": "object", "properties": { - "endpoint": { - "description": "rest API endpoint", - "type": "string" - }, - "endpoint_options": { - "description": "rest API endpoint options", - "type": "object" + "type": { + "const": "db_ids" }, - "name": { - "description": "the name of the variable in local scope to save the data under", - "type": "string" + "ids": { + "description": "IDs of item to retrieve from db", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "endpoint", - "endpoint_options" - ], - "additionalProperties": true + "type", + "ids" + ] }, { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO database input/output schema", + "title": "data IO database collection input/output schema", "type": "object", - "oneOf": [ - { - "properties": { - "ids": { - "description": "IDs of item to retrieve from db", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "ids" - ], - "additionalProperties": true + "properties": { + "type": { + "const": "db_collection" }, - { - "properties": { - "collection": { - "description": "db collection name", - "type": "string" - }, - "draft": { - "description": "whether the result should be saved as draft", - "type": "boolean" - } - }, - "required": [ - "collection", - "draft" - ], - "additionalProperties": true + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "description": "whether the result should be saved as draft", + "type": "boolean" } + }, + "required": [ + "type", + "collection", + "draft" ] }, { @@ -108,10 +248,13 @@ "title": "object_storage io schema", "type": "object", "required": [ + "type", "objectData" ], - "additionalProperties": true, "properties": { + "type": { + "const": "object_storage" + }, "objectData": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Object Storage Container Data", @@ -162,50 +305,34 @@ } } } - ] + ], + "discriminator": { + "propertyName": "type" + } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "reduce unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "mapFlowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -218,6 +345,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -228,29 +359,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -258,29 +377,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -288,29 +395,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -318,29 +413,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -350,6 +433,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -370,26 +464,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "reduce unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "mapFlowchartId", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "reduce", "description": "type of the unit", + "type": "string", + "const": "reduce" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "mapFlowchartId": { "description": "corresponding map unit flowchart ID", "type": "string" @@ -417,48 +516,32 @@ } } } - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "condition unit schema", + "type": "object", + "required": [ + "else", + "flowchartId", + "input", + "maxOccurrences", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "then", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -471,6 +554,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -481,29 +568,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -511,29 +586,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -541,29 +604,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -571,38 +622,37 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "tags": { + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { "description": "entity tags", "type": "array", "items": { "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -623,29 +673,31 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "condition unit schema", - "type": "object", - "required": [ - "else", - "flowchartId", - "input", - "maxOccurrences", - "statement", - "then", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "condition", "description": "type of the unit", + "type": "string", + "const": "condition" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "input": { "description": "Input information for condition.", "type": "array", @@ -688,48 +740,28 @@ "throwException": { "description": "Throw exception on reaching to maximum occurence.", "type": "boolean" - }, + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assertion unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "statement", + "type" + ], + "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -742,6 +774,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -752,29 +788,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -782,29 +806,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -812,29 +824,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -842,29 +842,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -874,6 +862,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -894,75 +893,61 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "assertion" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "statement": { + "type": "string", + "description": "The statement to be evaluated" + }, + "errorMessage": { + "type": "string", + "description": "The error message to be displayed if the assertion fails" } } }, { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "assertion unit schema", + "title": "execution unit schema (base)", "type": "object", "required": [ + "application", "flowchartId", + "input", + "monitors", "name", - "statement", + "postProcessors", + "preProcessors", + "results", "type" ], - "additionalProperties": true, "properties": { - "type": { - "const": "assertion", - "description": "type of the unit", + "_id": { + "description": "entity identity", "type": "string" }, - "statement": { - "type": "string", - "description": "The statement to be evaluated" - }, - "errorMessage": { - "type": "string", - "description": "The error message to be displayed if the assertion fails" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -975,6 +960,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -985,29 +974,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1015,29 +992,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1045,29 +1010,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1075,29 +1028,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -1107,6 +1048,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -1127,56 +1079,43 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit schema (base)", - "type": "object", - "required": [ - "application", - "flowchartId", - "input", - "type" - ], - "additionalProperties": true, - "properties": { + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "execution", "description": "type of the unit", + "type": "string", + "const": "execution" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", + "title": "application schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -1201,6 +1140,30 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } }, @@ -1209,24 +1172,14 @@ "title": "executable schema", "type": "object", "required": [ - "name" + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" ], "properties": { - "name": { - "description": "The name of the executable. e.g. pw.x", - "type": "string" - }, - "applicationId": { - "description": "_ids of the application this executable belongs to", - "type": "array", - "items": { - "type": "string" - } - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -1243,6 +1196,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -1253,29 +1210,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1283,29 +1228,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1313,29 +1246,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1343,79 +1264,46 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - } - } - }, - "flavor": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "flavor schema", - "type": "object", - "properties": { - "executableId": { - "description": "_id of the executable this flavor belongs to", - "type": "string" - }, - "executableName": { - "description": "name of the executable this flavor belongs to", - "type": "string" - }, - "applicationName": { - "description": "name of the application this flavor belongs to", - "type": "string" - }, - "input": { - "title": "execution unit input schema", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input id item schema for physics-based simulation engines", + "title": "runtime item name object schema", "type": "object", - "additionalProperties": false, + "required": [ + "name" + ], "properties": { - "templateId": { - "type": "string" - }, - "templateName": { - "type": "string" - }, "name": { - "description": "name of the resulting input file, if different than template name", + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } } } }, - "supportedApplicationVersions": { - "description": "list of application versions this flavor supports", + "applicationId": { + "description": "_ids of the application this executable belongs to", "type": "array", "items": { "type": "string" } }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } + }, + "flavor": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor schema", + "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { "_id": { "description": "entity identity", "type": "string" @@ -1446,29 +1334,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1476,29 +1352,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1506,29 +1370,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1536,238 +1388,171 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object", + "additionalProperties": false, + "properties": { + "templateId": { + "type": "string" }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "templateName": { + "type": "string" + }, + "name": { + "description": "name of the resulting input file, if different than template name", "type": "string" } - ] + } + } + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { + "type": "string" } } } }, "input": { - "description": "unit input (type to be specified by the application's execution unit)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + "title": "execution unit input item schema", + "type": "object", + "required": [ + "rendered", + "isManuallyChanged", + "template" + ], + "properties": { + "template": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "template schema", "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", + ], "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", + "_id": { + "description": "entity identity", "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", + }, + "slug": { + "description": "entity slug", "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", "type": "string" } - }, - "required": [ - "name" - ] + } }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" + }, + "isManuallyChanged": { + "type": "boolean", + "default": false } - ] - } - }, - "tags": { - "description": "entity tags", - "type": "array", - "items": { - "type": "string" + } } }, - "statusTrack": { + "context": { "type": "array", "items": { "type": "object", "required": [ - "trackedAt", - "status" + "name", + "isEdited", + "data" ], "properties": { - "trackedAt": { - "type": "number" + "name": { + "type": "string", + "tsType": "ContextProviderNameEnum" }, - "status": { - "type": "string" + "isEdited": { + "type": "boolean" }, - "repetition": { - "type": "number" + "data": { + "type": "object" + }, + "extraData": { + "type": "object" } } } @@ -1780,100 +1565,20 @@ "type": "object", "required": [ "flowchartId", + "monitors", "name", "operand", + "postProcessors", + "preProcessors", + "results", "type", "value" ], - "additionalProperties": true, "properties": { - "type": { - "const": "assignment", - "description": "type of the unit", - "type": "string" - }, - "input": { - "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit input schema", - "type": "object", - "required": [ - "scope", - "name" - ], - "properties": { - "scope": { - "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", - "type": "string" - }, - "name": { - "description": "Name of the input data. e.g. total_energy", - "type": "string" - } - } - } - }, - "operand": { - "description": "Name of the global variable. e.g. 'x'", - "type": "string" - }, - "value": { - "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", - "oneOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", + "description": "entity identity", "type": "string" }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -1886,6 +1591,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -1896,29 +1605,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -1926,29 +1623,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -1956,29 +1641,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -1986,29 +1659,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2018,6 +1679,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -2039,61 +1711,13 @@ } } }, - "scope": { - "type": "string" - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "processing unit schema", - "type": "object", - "required": [ - "flowchartId", - "inputData", - "operation", - "operationType", - "type" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "processing", - "description": "type of the unit", - "type": "string" - }, - "operation": { - "description": "Contains information about the operation used.", - "type": "string" - }, - "operationType": { - "description": "Contains information about the specific type of the operation used.", - "type": "string" - }, - "inputData": { - "description": "unit input (type to be specified by the child units)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "assignment" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -2111,8 +1735,72 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "scope": { + "type": "string" + }, + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", + "type": "object", + "required": [ + "scope", + "name" + ], + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + } + } + } + }, + "operand": { + "description": "Name of the global variable. e.g. 'x'", + "type": "string" + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "oneOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "processing unit schema", + "type": "object", + "required": [ + "flowchartId", + "inputData", + "monitors", + "name", + "operation", + "operationType", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -2126,6 +1814,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -2136,59 +1828,35 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -2196,29 +1864,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -2226,29 +1882,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2258,6 +1902,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -2278,92 +1933,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "map unit schema", - "type": "object", - "required": [ - "flowchartId", - "input", - "type", - "workflowId" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "map", - "description": "type of the unit", - "type": "string" - }, - "workflowId": { - "description": "Id of workflow to run inside map", - "type": "string" - }, - "input": { - "description": "Input information for map.", - "type": "object", - "required": [ - "target" - ], - "properties": { - "target": { - "description": "Name of the target variable to substitute using the values below. e.g. K_POINTS", - "type": "string" - }, - "scope": { - "description": "Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.", - "type": "string" - }, - "name": { - "description": "Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.", - "type": "string" - }, - "values": { - "description": "Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution", - "type": "array", - "items": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "object" - } - ] - } - }, - "useValues": { - "type": "boolean" - } - } - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "processing" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -2381,8 +1958,38 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "inputData": { + "description": "unit input (type to be specified by the child units)" + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "map unit schema", + "type": "object", + "required": [ + "flowchartId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type", + "workflowId" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -2396,6 +2003,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -2406,29 +2017,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -2436,29 +2035,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -2466,29 +2053,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -2496,29 +2071,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2528,6 +2091,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -2548,45 +2122,14 @@ } } } - } - } - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "subworkflow unit schema", - "type": "object", - "required": [ - "type", - "flowchartId" - ], - "additionalProperties": true, - "properties": { - "type": { - "const": "subworkflow", - "description": "type of the unit", - "type": "string" - }, - "_id": { - "type": "string", - "description": "entity identity" }, "isDraft": { "type": "boolean" }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", + "type": { + "description": "type of the unit", "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] + "const": "map" }, "head": { "description": "Whether this unit is the first one to be executed.", @@ -2604,8 +2147,70 @@ "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", "type": "boolean" }, - "context": { - "type": "object" + "workflowId": { + "description": "Id of workflow to run inside map", + "type": "string" + }, + "input": { + "description": "Input information for map.", + "type": "object", + "required": [ + "target" + ], + "properties": { + "target": { + "description": "Name of the target variable to substitute using the values below. e.g. K_POINTS", + "type": "string" + }, + "scope": { + "description": "Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.", + "type": "string" + }, + "name": { + "description": "Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.", + "type": "string" + }, + "values": { + "description": "Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution", + "type": "array", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + } + ] + } + }, + "useValues": { + "type": "boolean" + } + } + } + } + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "subworkflow unit schema", + "type": "object", + "required": [ + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" }, "slug": { "description": "entity slug", @@ -2619,6 +2224,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -2629,29 +2238,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -2659,29 +2256,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -2689,29 +2274,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -2719,29 +2292,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -2751,6 +2312,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -2771,6 +2343,30 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "subworkflow" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" } } } diff --git a/dist/js/schema/workflow/unit/assertion.json b/dist/js/schema/workflow/unit/assertion.json index 4138b1f6e..5e09babdc 100644 --- a/dist/js/schema/workflow/unit/assertion.json +++ b/dist/js/schema/workflow/unit/assertion.json @@ -5,66 +5,19 @@ "type": "object", "required": [ "flowchartId", + "monitors", "name", + "postProcessors", + "preProcessors", + "results", "statement", "type" ], - "additionalProperties": true, "properties": { - "type": { - "const": "assertion", - "description": "type of the unit", - "type": "string" - }, - "statement": { - "type": "string", - "description": "The statement to be evaluated" - }, - "errorMessage": { - "type": "string", - "description": "The error message to be displayed if the assertion fails" - }, "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "description": "entity identity", "type": "string" }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -77,6 +30,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -87,29 +44,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -117,29 +62,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -147,29 +80,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -177,29 +98,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -209,6 +118,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -229,6 +149,38 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "assertion" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "statement": { + "type": "string", + "description": "The statement to be evaluated" + }, + "errorMessage": { + "type": "string", + "description": "The error message to be displayed if the assertion fails" } } } \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/assignment.json b/dist/js/schema/workflow/unit/assignment.json index 2a696ecca..ac43876f1 100644 --- a/dist/js/schema/workflow/unit/assignment.json +++ b/dist/js/schema/workflow/unit/assignment.json @@ -5,100 +5,20 @@ "type": "object", "required": [ "flowchartId", + "monitors", "name", "operand", + "postProcessors", + "preProcessors", + "results", "type", "value" ], - "additionalProperties": true, "properties": { - "type": { - "const": "assignment", - "description": "type of the unit", - "type": "string" - }, - "input": { - "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit input schema", - "type": "object", - "required": [ - "scope", - "name" - ], - "properties": { - "scope": { - "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", - "type": "string" - }, - "name": { - "description": "Name of the input data. e.g. total_energy", - "type": "string" - } - } - } - }, - "operand": { - "description": "Name of the global variable. e.g. 'x'", - "type": "string" - }, - "value": { - "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", - "oneOf": [ - { - "type": "string" - }, - { - "type": "boolean" - }, - { - "type": "number" - } - ] - }, "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "description": "entity identity", "type": "string" }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -111,6 +31,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -121,29 +45,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -151,29 +63,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -181,29 +81,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -211,29 +99,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -243,6 +119,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -264,8 +151,73 @@ } } }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "assignment" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "scope": { "type": "string" + }, + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", + "type": "object", + "required": [ + "scope", + "name" + ], + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + } + } + } + }, + "operand": { + "description": "Name of the global variable. e.g. 'x'", + "type": "string" + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "oneOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] } } } \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/base.json b/dist/js/schema/workflow/unit/base.json index e2fb0c310..be932b1ae 100644 --- a/dist/js/schema/workflow/unit/base.json +++ b/dist/js/schema/workflow/unit/base.json @@ -4,56 +4,19 @@ "title": "workflow base unit schema", "type": "object", "required": [ - "type", - "flowchartId" + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" ], - "additionalProperties": true, "properties": { "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "type": { - "description": "type of the unit", - "type": "string" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "description": "entity identity", "type": "string" }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -66,6 +29,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -76,29 +43,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -106,29 +61,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -136,29 +79,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -166,29 +97,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -198,6 +117,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -218,6 +148,29 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" } } } \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/condition.json b/dist/js/schema/workflow/unit/condition.json index eb21b2644..b27539d5b 100644 --- a/dist/js/schema/workflow/unit/condition.json +++ b/dist/js/schema/workflow/unit/condition.json @@ -8,101 +8,20 @@ "flowchartId", "input", "maxOccurrences", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", "statement", "then", "type" ], - "additionalProperties": true, "properties": { - "type": { - "const": "condition", - "description": "type of the unit", - "type": "string" - }, - "input": { - "description": "Input information for condition.", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "workflow unit input schema", - "type": "object", - "required": [ - "scope", - "name" - ], - "properties": { - "scope": { - "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", - "type": "string" - }, - "name": { - "description": "Name of the input data. e.g. total_energy", - "type": "string" - } - } - } - }, - "statement": { - "description": "Condition statement. e.g. 'abs(x-total_energy) < 1e-5'", - "type": "string" - }, - "then": { - "description": "Flowchart ID reference for `then` part of the condition.", - "type": "string" - }, - "else": { - "description": "Flowchart ID reference for `else` part of the condition.", - "type": "string" - }, - "maxOccurrences": { - "description": "Maximum occurrence of the condition, usable for loops.", - "type": "integer" - }, - "throwException": { - "description": "Throw exception on reaching to maximum occurence.", - "type": "boolean" - }, "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -115,6 +34,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -125,29 +48,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -155,29 +66,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -185,29 +84,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -215,29 +102,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -247,6 +122,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -267,6 +153,73 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "condition" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "input": { + "description": "Input information for condition.", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", + "type": "object", + "required": [ + "scope", + "name" + ], + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + } + } + } + }, + "statement": { + "description": "Condition statement. e.g. 'abs(x-total_energy) < 1e-5'", + "type": "string" + }, + "then": { + "description": "Flowchart ID reference for `then` part of the condition.", + "type": "string" + }, + "else": { + "description": "Flowchart ID reference for `else` part of the condition.", + "type": "string" + }, + "maxOccurrences": { + "description": "Maximum occurrence of the condition, usable for loops.", + "type": "integer" + }, + "throwException": { + "description": "Throw exception on reaching to maximum occurence.", + "type": "boolean" } } } \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/execution.json b/dist/js/schema/workflow/unit/execution.json index 7648a6fb9..f70e0e902 100644 --- a/dist/js/schema/workflow/unit/execution.json +++ b/dist/js/schema/workflow/unit/execution.json @@ -7,45 +7,186 @@ "application", "flowchartId", "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", "type" ], - "additionalProperties": true, "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "execution", "description": "type of the unit", + "type": "string", + "const": "execution" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "application": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "application schema (base)", + "title": "application schema", "type": "object", - "additionalProperties": true, + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], "properties": { - "shortName": { - "description": "The short name of the application. e.g. qe", - "type": "string" - }, - "summary": { - "description": "Application's short description.", - "type": "string" - }, - "version": { - "description": "Application version. e.g. 5.3.5", - "type": "string" - }, - "build": { - "description": "Application build. e.g. VTST", - "type": "string" - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, - "isLicensed": { - "description": "Whether licensing is present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -70,6 +211,30 @@ "description": "Identifies that entity is defaultable", "type": "boolean", "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" } } }, @@ -78,24 +243,14 @@ "title": "executable schema", "type": "object", "required": [ - "name" + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" ], "properties": { - "name": { - "description": "The name of the executable. e.g. pw.x", - "type": "string" - }, - "applicationId": { - "description": "_ids of the application this executable belongs to", - "type": "array", - "items": { - "type": "string" - } - }, - "hasAdvancedComputeOptions": { - "description": "Whether advanced compute options are present", - "type": "boolean" - }, "_id": { "description": "entity identity", "type": "string" @@ -112,6 +267,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -122,29 +281,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -152,29 +299,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -182,29 +317,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -212,79 +335,46 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - } - } - }, - "flavor": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "flavor schema", - "type": "object", - "properties": { - "executableId": { - "description": "_id of the executable this flavor belongs to", - "type": "string" - }, - "executableName": { - "description": "name of the executable this flavor belongs to", - "type": "string" - }, - "applicationName": { - "description": "name of the application this flavor belongs to", - "type": "string" - }, - "input": { - "title": "execution unit input schema", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input id item schema for physics-based simulation engines", + "title": "runtime item name object schema", "type": "object", - "additionalProperties": false, + "required": [ + "name" + ], "properties": { - "templateId": { - "type": "string" - }, - "templateName": { - "type": "string" - }, "name": { - "description": "name of the resulting input file, if different than template name", + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } } } }, - "supportedApplicationVersions": { - "description": "list of application versions this flavor supports", + "applicationId": { + "description": "_ids of the application this executable belongs to", "type": "array", "items": { "type": "string" } }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } + }, + "flavor": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor schema", + "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { "_id": { "description": "entity identity", "type": "string" @@ -315,29 +405,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -345,29 +423,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -375,29 +441,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -405,238 +459,171 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - } - } - }, - "input": { - "description": "unit input (type to be specified by the application's execution unit)" - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "runtime item name object schema", "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, "required": [ "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", + ], "properties": { "name": { "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" + } } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "execution unit input id item schema for physics-based simulation engines", "type": "object", + "additionalProperties": false, "properties": { + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "name of the resulting input file, if different than template name", "type": "string" } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + } + } + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { "type": "string" } - ] + } } }, - "results": { - "description": "names of the results for this calculation", + "input": { "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { + "title": "execution unit input item schema", + "type": "object", + "required": [ + "rendered", + "isManuallyChanged", + "template" + ], + "properties": { + "template": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", + "title": "template schema", "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, "name": { - "description": "The name of this item. e.g. scf_accuracy", + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", "type": "string" } - }, - "required": [ - "name" - ] + } }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" + }, + "isManuallyChanged": { + "type": "boolean", + "default": false } - ] - } - }, - "tags": { - "description": "entity tags", - "type": "array", - "items": { - "type": "string" + } } }, - "statusTrack": { + "context": { "type": "array", "items": { "type": "object", "required": [ - "trackedAt", - "status" + "name", + "isEdited", + "data" ], "properties": { - "trackedAt": { - "type": "number" + "name": { + "type": "string", + "tsType": "ContextProviderNameEnum" }, - "status": { - "type": "string" + "isEdited": { + "type": "boolean" }, - "repetition": { - "type": "number" + "data": { + "type": "object" + }, + "extraData": { + "type": "object" } } } diff --git a/dist/js/schema/workflow/unit/input/_input.json b/dist/js/schema/workflow/unit/input/_input.json index a8e771ec9..d7332bbb8 100644 --- a/dist/js/schema/workflow/unit/input/_input.json +++ b/dist/js/schema/workflow/unit/input/_input.json @@ -1,7 +1,7 @@ { "$id": "workflow/unit/input/-input", "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input schema for physics-based simulation engines", + "title": "execution unit input schema", "type": "object", "properties": { "input": { @@ -11,25 +11,86 @@ "oneOf": [ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input item schema for physics-based simulation engines", + "title": "execution unit input item schema", "type": "object", "properties": { - "name": { - "description": "Input file name. e.g. pw_scf.in", - "type": "string" - }, - "content": { - "description": "Content of the input file. e.g. &CONTROL calculation='scf' ...", - "type": "string" + "template": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "template schema", + "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", + "type": "string" + } + } }, "rendered": { "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" + }, + "isManuallyChanged": { + "type": "boolean", + "default": false } }, "required": [ - "name", - "content" + "rendered", + "isManuallyChanged", + "template" ] }, { diff --git a/dist/js/schema/workflow/unit/input/_inputItem.json b/dist/js/schema/workflow/unit/input/_inputItem.json index e95c1d27e..9b61a6d9f 100644 --- a/dist/js/schema/workflow/unit/input/_inputItem.json +++ b/dist/js/schema/workflow/unit/input/_inputItem.json @@ -1,24 +1,85 @@ { "$id": "workflow/unit/input/-inputItem", "$schema": "http://json-schema.org/draft-07/schema#", - "title": "execution unit input item schema for physics-based simulation engines", + "title": "execution unit input item schema", "type": "object", "required": [ - "name", - "content" + "rendered", + "isManuallyChanged", + "template" ], "properties": { - "name": { - "description": "Input file name. e.g. pw_scf.in", - "type": "string" - }, - "content": { - "description": "Content of the input file. e.g. &CONTROL calculation='scf' ...", - "type": "string" + "template": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "template schema", + "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", + "type": "string" + } + } }, "rendered": { "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", "type": "string" + }, + "isManuallyChanged": { + "type": "boolean", + "default": false } } } \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/io.json b/dist/js/schema/workflow/unit/io.json index 43df1a4fe..e4964aee3 100644 --- a/dist/js/schema/workflow/unit/io.json +++ b/dist/js/schema/workflow/unit/io.json @@ -6,17 +6,176 @@ "required": [ "flowchartId", "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", "source", "subtype", "type" ], - "additionalProperties": true, "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "tags": { + "description": "entity tags", + "type": "array", + "items": { + "type": "string" + } + }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "statusTrack": { + "type": "array", + "items": { + "type": "object", + "required": [ + "trackedAt", + "status" + ], + "properties": { + "trackedAt": { + "type": "number" + }, + "status": { + "type": "string" + }, + "repetition": { + "type": "number" + } + } + } + }, + "isDraft": { + "type": "boolean" + }, "type": { - "const": "io", "description": "type of the unit", + "type": "string", + "const": "io" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", "type": "string" }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, "subtype": { "enum": [ "input", @@ -37,65 +196,46 @@ "oneOf": [ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO rest API input schema", + "title": "data IO database ids input/output schema", "type": "object", "properties": { - "endpoint": { - "description": "rest API endpoint", - "type": "string" - }, - "endpoint_options": { - "description": "rest API endpoint options", - "type": "object" + "type": { + "const": "db_ids" }, - "name": { - "description": "the name of the variable in local scope to save the data under", - "type": "string" + "ids": { + "description": "IDs of item to retrieve from db", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "endpoint", - "endpoint_options" - ], - "additionalProperties": true + "type", + "ids" + ] }, { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "data IO database input/output schema", + "title": "data IO database collection input/output schema", "type": "object", - "oneOf": [ - { - "properties": { - "ids": { - "description": "IDs of item to retrieve from db", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "ids" - ], - "additionalProperties": true + "properties": { + "type": { + "const": "db_collection" }, - { - "properties": { - "collection": { - "description": "db collection name", - "type": "string" - }, - "draft": { - "description": "whether the result should be saved as draft", - "type": "boolean" - } - }, - "required": [ - "collection", - "draft" - ], - "additionalProperties": true + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "description": "whether the result should be saved as draft", + "type": "boolean" } + }, + "required": [ + "type", + "collection", + "draft" ] }, { @@ -103,10 +243,13 @@ "title": "object_storage io schema", "type": "object", "required": [ + "type", "objectData" ], - "additionalProperties": true, "properties": { + "type": { + "const": "object_storage" + }, "objectData": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Object Storage Container Data", @@ -157,212 +300,9 @@ } } } - ] - } - }, - "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, - "slug": { - "description": "entity slug", - "type": "string" - }, - "systemName": { - "type": "string" - }, - "schemaVersion": { - "description": "entity's schema version. Used to distinct between different schemas.", - "type": "string", - "default": "2022.8.16" - }, - "isDefault": { - "description": "Identifies that entity is defaultable", - "type": "boolean", - "default": false - }, - "preProcessors": { - "description": "names of the pre-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "postProcessors": { - "description": "names of the post-processors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "monitors": { - "description": "names of the monitors for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "results": { - "description": "names of the results for this calculation", - "type": "array", - "items": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", - "type": "string" - } - ] - } - }, - "tags": { - "description": "entity tags", - "type": "array", - "items": { - "type": "string" - } - }, - "statusTrack": { - "type": "array", - "items": { - "type": "object", - "required": [ - "trackedAt", - "status" ], - "properties": { - "trackedAt": { - "type": "number" - }, - "status": { - "type": "string" - }, - "repetition": { - "type": "number" - } + "discriminator": { + "propertyName": "type" } } } diff --git a/dist/js/schema/workflow/unit/io/db_collection.json b/dist/js/schema/workflow/unit/io/db_collection.json new file mode 100644 index 000000000..a5a839a4d --- /dev/null +++ b/dist/js/schema/workflow/unit/io/db_collection.json @@ -0,0 +1,24 @@ +{ + "$id": "workflow/unit/io/db-collection", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "data IO database collection input/output schema", + "type": "object", + "required": [ + "type", + "collection", + "draft" + ], + "properties": { + "type": { + "const": "db_collection" + }, + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "description": "whether the result should be saved as draft", + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/io/db_ids.json b/dist/js/schema/workflow/unit/io/db_ids.json new file mode 100644 index 000000000..c02df9929 --- /dev/null +++ b/dist/js/schema/workflow/unit/io/db_ids.json @@ -0,0 +1,22 @@ +{ + "$id": "workflow/unit/io/db-ids", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "data IO database ids input/output schema", + "type": "object", + "required": [ + "type", + "ids" + ], + "properties": { + "type": { + "const": "db_ids" + }, + "ids": { + "description": "IDs of item to retrieve from db", + "type": "array", + "items": { + "type": "string" + } + } + } +} \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/io/object_storage.json b/dist/js/schema/workflow/unit/io/object_storage.json index 50b32c72a..b3f3babc6 100644 --- a/dist/js/schema/workflow/unit/io/object_storage.json +++ b/dist/js/schema/workflow/unit/io/object_storage.json @@ -4,10 +4,13 @@ "title": "object_storage io schema", "type": "object", "required": [ + "type", "objectData" ], - "additionalProperties": true, "properties": { + "type": { + "const": "object_storage" + }, "objectData": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Object Storage Container Data", diff --git a/dist/js/schema/workflow/unit/map.json b/dist/js/schema/workflow/unit/map.json index 055ae56b6..81299ab27 100644 --- a/dist/js/schema/workflow/unit/map.json +++ b/dist/js/schema/workflow/unit/map.json @@ -6,102 +6,19 @@ "required": [ "flowchartId", "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", "type", "workflowId" ], - "additionalProperties": true, "properties": { - "type": { - "const": "map", - "description": "type of the unit", - "type": "string" - }, - "workflowId": { - "description": "Id of workflow to run inside map", - "type": "string" - }, - "input": { - "description": "Input information for map.", - "type": "object", - "required": [ - "target" - ], - "properties": { - "target": { - "description": "Name of the target variable to substitute using the values below. e.g. K_POINTS", - "type": "string" - }, - "scope": { - "description": "Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.", - "type": "string" - }, - "name": { - "description": "Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.", - "type": "string" - }, - "values": { - "description": "Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution", - "type": "array", - "items": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "object" - } - ] - } - }, - "useValues": { - "type": "boolean" - } - } - }, "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "description": "entity identity", "type": "string" }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -114,6 +31,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -124,29 +45,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -154,29 +63,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -184,29 +81,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -214,29 +99,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -246,6 +119,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -266,6 +150,75 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "map" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "workflowId": { + "description": "Id of workflow to run inside map", + "type": "string" + }, + "input": { + "description": "Input information for map.", + "type": "object", + "required": [ + "target" + ], + "properties": { + "target": { + "description": "Name of the target variable to substitute using the values below. e.g. K_POINTS", + "type": "string" + }, + "scope": { + "description": "Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.", + "type": "string" + }, + "name": { + "description": "Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.", + "type": "string" + }, + "values": { + "description": "Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution", + "type": "array", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + } + ] + } + }, + "useValues": { + "type": "boolean" + } + } } } } \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/mixins/assertion.json b/dist/js/schema/workflow/unit/mixins/assertion.json new file mode 100644 index 000000000..46a6e10b1 --- /dev/null +++ b/dist/js/schema/workflow/unit/mixins/assertion.json @@ -0,0 +1,23 @@ +{ + "$id": "workflow/unit/mixins/assertion", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assertion unit mixin schema", + "type": "object", + "required": [ + "name", + "statement" + ], + "properties": { + "type": { + "const": "assertion" + }, + "statement": { + "type": "string", + "description": "The statement to be evaluated" + }, + "errorMessage": { + "type": "string", + "description": "The error message to be displayed if the assertion fails" + } + } +} \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/mixins/assignment.json b/dist/js/schema/workflow/unit/mixins/assignment.json new file mode 100644 index 000000000..5d1be68ca --- /dev/null +++ b/dist/js/schema/workflow/unit/mixins/assignment.json @@ -0,0 +1,57 @@ +{ + "$id": "workflow/unit/mixins/assignment", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "assignment unit mixin schema", + "type": "object", + "required": [ + "name", + "operand", + "value" + ], + "properties": { + "type": { + "const": "assignment" + }, + "input": { + "description": "Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", + "type": "object", + "required": [ + "scope", + "name" + ], + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + } + } + } + }, + "operand": { + "description": "Name of the global variable. e.g. 'x'", + "type": "string" + }, + "value": { + "description": "Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)", + "oneOf": [ + { + "type": "string" + }, + { + "type": "boolean" + }, + { + "type": "number" + } + ] + } + } +} \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/mixins/base.json b/dist/js/schema/workflow/unit/mixins/base.json new file mode 100644 index 000000000..6132eb0b8 --- /dev/null +++ b/dist/js/schema/workflow/unit/mixins/base.json @@ -0,0 +1,50 @@ +{ + "$id": "workflow/unit/mixins/base", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow base unit mixin schema", + "type": "object", + "required": [ + "type", + "flowchartId" + ], + "properties": { + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string" + }, + "name": { + "description": "name of the unit. e.g. pw_scf", + "type": "string" + }, + "status": { + "description": "Status of the unit.", + "type": "string", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/mixins/condition.json b/dist/js/schema/workflow/unit/mixins/condition.json new file mode 100644 index 000000000..7e80cd034 --- /dev/null +++ b/dist/js/schema/workflow/unit/mixins/condition.json @@ -0,0 +1,61 @@ +{ + "$id": "workflow/unit/mixins/condition", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "condition unit mixin schema", + "type": "object", + "required": [ + "input", + "statement", + "then", + "else", + "maxOccurrences" + ], + "properties": { + "type": { + "const": "condition" + }, + "input": { + "description": "Input information for condition.", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "workflow unit input schema", + "type": "object", + "required": [ + "scope", + "name" + ], + "properties": { + "scope": { + "description": "Scope of the variable. e.g. 'global' or 'flowchart_id_2'", + "type": "string" + }, + "name": { + "description": "Name of the input data. e.g. total_energy", + "type": "string" + } + } + } + }, + "statement": { + "description": "Condition statement. e.g. 'abs(x-total_energy) < 1e-5'", + "type": "string" + }, + "then": { + "description": "Flowchart ID reference for `then` part of the condition.", + "type": "string" + }, + "else": { + "description": "Flowchart ID reference for `else` part of the condition.", + "type": "string" + }, + "maxOccurrences": { + "description": "Maximum occurrence of the condition, usable for loops.", + "type": "integer" + }, + "throwException": { + "description": "Throw exception on reaching to maximum occurence.", + "type": "boolean" + } + } +} \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/mixins/execution.json b/dist/js/schema/workflow/unit/mixins/execution.json new file mode 100644 index 000000000..0d305efd6 --- /dev/null +++ b/dist/js/schema/workflow/unit/mixins/execution.json @@ -0,0 +1,468 @@ +{ + "$id": "workflow/unit/mixins/execution", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit mixin schema", + "type": "object", + "required": [ + "input", + "application" + ], + "properties": { + "type": { + "const": "execution" + }, + "application": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "application schema", + "type": "object", + "required": [ + "build", + "name", + "shortName", + "summary", + "version" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "shortName": { + "description": "The short name of the application. e.g. qe", + "type": "string" + }, + "summary": { + "description": "Application's short description.", + "type": "string" + }, + "version": { + "description": "Application version. e.g. 5.3.5", + "type": "string" + }, + "build": { + "description": "Application build. e.g. VTST", + "type": "string" + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + }, + "isLicensed": { + "description": "Whether licensing is present", + "type": "boolean" + } + } + }, + "executable": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "executable schema", + "type": "object", + "required": [ + "applicationId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "applicationId": { + "description": "_ids of the application this executable belongs to", + "type": "array", + "items": { + "type": "string" + } + }, + "hasAdvancedComputeOptions": { + "description": "Whether advanced compute options are present", + "type": "boolean" + } + } + }, + "flavor": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "flavor schema", + "type": "object", + "required": [ + "executableId", + "input", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "isDefault": { + "description": "Identifies that entity is defaultable", + "type": "boolean", + "default": false + }, + "preProcessors": { + "description": "names of the pre-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "postProcessors": { + "description": "names of the post-processors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "monitors": { + "description": "names of the monitors for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "results": { + "description": "names of the results for this calculation", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "executableId": { + "description": "_id of the executable this flavor belongs to", + "type": "string" + }, + "executableName": { + "description": "name of the executable this flavor belongs to", + "type": "string" + }, + "applicationName": { + "description": "name of the application this flavor belongs to", + "type": "string" + }, + "input": { + "title": "execution unit input schema", + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit input id item schema for physics-based simulation engines", + "type": "object", + "additionalProperties": false, + "properties": { + "templateId": { + "type": "string" + }, + "templateName": { + "type": "string" + }, + "name": { + "description": "name of the resulting input file, if different than template name", + "type": "string" + } + } + } + }, + "supportedApplicationVersions": { + "description": "list of application versions this flavor supports", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "input": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "execution unit input item schema", + "type": "object", + "required": [ + "rendered", + "isManuallyChanged", + "template" + ], + "properties": { + "template": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "template schema", + "type": "object", + "required": [ + "applicationName", + "content", + "contextProviders", + "executableName", + "name" + ], + "properties": { + "_id": { + "description": "entity identity", + "type": "string" + }, + "slug": { + "description": "entity slug", + "type": "string" + }, + "systemName": { + "type": "string" + }, + "schemaVersion": { + "description": "entity's schema version. Used to distinct between different schemas.", + "type": "string", + "default": "2022.8.16" + }, + "name": { + "description": "entity name", + "type": "string" + }, + "applicationName": { + "type": "string" + }, + "applicationVersion": { + "type": "string" + }, + "executableName": { + "type": "string" + }, + "contextProviders": { + "type": "array", + "items": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", + "type": "string" + } + } + } + }, + "content": { + "description": "Content of the template. e.g. &CONTROL calculation='scf' ...", + "type": "string" + } + } + }, + "rendered": { + "description": "Rendered content of the input file. e.g. &CONTROL calculation='scf' ...", + "type": "string" + }, + "isManuallyChanged": { + "type": "boolean", + "default": false + } + } + } + }, + "context": { + "type": "array", + "items": { + "type": "object", + "required": [ + "name", + "isEdited", + "data" + ], + "properties": { + "name": { + "type": "string", + "tsType": "ContextProviderNameEnum" + }, + "isEdited": { + "type": "boolean" + }, + "data": { + "type": "object" + }, + "extraData": { + "type": "object" + } + } + } + } + } +} \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/mixins/io.json b/dist/js/schema/workflow/unit/mixins/io.json new file mode 100644 index 000000000..60ae5fc44 --- /dev/null +++ b/dist/js/schema/workflow/unit/mixins/io.json @@ -0,0 +1,146 @@ +{ + "$id": "workflow/unit/mixins/io", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "data IO unit mixin schema", + "type": "object", + "required": [ + "subtype", + "source", + "input" + ], + "properties": { + "type": { + "const": "io" + }, + "subtype": { + "enum": [ + "input", + "output", + "dataFrame" + ] + }, + "source": { + "enum": [ + "api", + "db", + "object_storage" + ] + }, + "input": { + "type": "array", + "items": { + "oneOf": [ + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "data IO database ids input/output schema", + "type": "object", + "properties": { + "type": { + "const": "db_ids" + }, + "ids": { + "description": "IDs of item to retrieve from db", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type", + "ids" + ] + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "data IO database collection input/output schema", + "type": "object", + "properties": { + "type": { + "const": "db_collection" + }, + "collection": { + "description": "db collection name", + "type": "string" + }, + "draft": { + "description": "whether the result should be saved as draft", + "type": "boolean" + } + }, + "required": [ + "type", + "collection", + "draft" + ] + }, + { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "object_storage io schema", + "type": "object", + "required": [ + "type", + "objectData" + ], + "properties": { + "type": { + "const": "object_storage" + }, + "objectData": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Object Storage Container Data", + "type": "object", + "properties": { + "CONTAINER": { + "description": "Object storage container for the file", + "type": "string" + }, + "NAME": { + "description": "Name of the file inside the object storage bucket", + "type": "string" + }, + "PROVIDER": { + "description": "Object storage provider", + "type": "string" + }, + "REGION": { + "description": "Region for the object container specified in Container", + "type": "string" + }, + "SIZE": { + "description": "Size of the file in bytes", + "type": "integer" + }, + "TIMESTAMP": { + "description": "Unix timestamp showing when the file was last modified", + "type": "string" + } + } + }, + "overwrite": { + "description": "if a file with the same filename already exists, whether to overwrite the old file", + "type": "boolean" + }, + "pathname": { + "description": "Relative path to the directory that contains the file.", + "type": "string" + }, + "basename": { + "description": "Basename of the file", + "type": "string", + "$comment": "isGenerative:true" + }, + "filetype": { + "description": "What kind of file this is, e.g. image / text", + "type": "string" + } + } + } + ], + "discriminator": { + "propertyName": "type" + } + } + } + } +} \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/mixins/map.json b/dist/js/schema/workflow/unit/mixins/map.json new file mode 100644 index 000000000..a9fcf4e8a --- /dev/null +++ b/dist/js/schema/workflow/unit/mixins/map.json @@ -0,0 +1,60 @@ +{ + "$id": "workflow/unit/mixins/map", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "map unit mixin schema", + "type": "object", + "required": [ + "input", + "workflowId" + ], + "properties": { + "type": { + "const": "map" + }, + "workflowId": { + "description": "Id of workflow to run inside map", + "type": "string" + }, + "input": { + "description": "Input information for map.", + "type": "object", + "required": [ + "target" + ], + "properties": { + "target": { + "description": "Name of the target variable to substitute using the values below. e.g. K_POINTS", + "type": "string" + }, + "scope": { + "description": "Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.", + "type": "string" + }, + "name": { + "description": "Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.", + "type": "string" + }, + "values": { + "description": "Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution", + "type": "array", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + } + ] + } + }, + "useValues": { + "type": "boolean" + } + } + } + } +} \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/mixins/processing.json b/dist/js/schema/workflow/unit/mixins/processing.json new file mode 100644 index 000000000..c89c43f3e --- /dev/null +++ b/dist/js/schema/workflow/unit/mixins/processing.json @@ -0,0 +1,27 @@ +{ + "$id": "workflow/unit/mixins/processing", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "processing unit mixin schema", + "type": "object", + "required": [ + "operation", + "operationType", + "inputData" + ], + "properties": { + "type": { + "const": "processing" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "inputData": { + "description": "unit input (type to be specified by the child units)" + } + } +} \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/mixins/reduce.json b/dist/js/schema/workflow/unit/mixins/reduce.json new file mode 100644 index 000000000..608caa912 --- /dev/null +++ b/dist/js/schema/workflow/unit/mixins/reduce.json @@ -0,0 +1,43 @@ +{ + "$id": "workflow/unit/mixins/reduce", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "reduce unit mixin schema", + "type": "object", + "required": [ + "mapFlowchartId", + "input" + ], + "properties": { + "type": { + "const": "reduce" + }, + "mapFlowchartId": { + "description": "corresponding map unit flowchart ID", + "type": "string" + }, + "input": { + "description": "input information for reduce unit", + "type": "array", + "items": { + "type": "object", + "required": [ + "operation", + "arguments" + ], + "properties": { + "operation": { + "description": "reduce operation, e.g. aggregate", + "type": "string" + }, + "arguments": { + "description": "arguments which are passed to reduce operation function", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/mixins/subworkflow.json b/dist/js/schema/workflow/unit/mixins/subworkflow.json new file mode 100644 index 000000000..70e6b6b20 --- /dev/null +++ b/dist/js/schema/workflow/unit/mixins/subworkflow.json @@ -0,0 +1,11 @@ +{ + "$id": "workflow/unit/mixins/subworkflow", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "subworkflow unit mixin schema", + "type": "object", + "properties": { + "type": { + "const": "subworkflow" + } + } +} \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/processing.json b/dist/js/schema/workflow/unit/processing.json index 2f33ca671..87f8b5bd0 100644 --- a/dist/js/schema/workflow/unit/processing.json +++ b/dist/js/schema/workflow/unit/processing.json @@ -6,69 +6,20 @@ "required": [ "flowchartId", "inputData", + "monitors", + "name", "operation", "operationType", + "postProcessors", + "preProcessors", + "results", "type" ], - "additionalProperties": true, "properties": { - "type": { - "const": "processing", - "description": "type of the unit", - "type": "string" - }, - "operation": { - "description": "Contains information about the operation used.", - "type": "string" - }, - "operationType": { - "description": "Contains information about the specific type of the operation used.", - "type": "string" - }, - "inputData": { - "description": "unit input (type to be specified by the child units)" - }, "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", + "description": "entity identity", "type": "string" }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", - "type": "string" - }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -81,6 +32,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -91,29 +46,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -121,29 +64,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -151,29 +82,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -181,29 +100,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -213,6 +120,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -233,6 +151,41 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "processing" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "operation": { + "description": "Contains information about the operation used.", + "type": "string" + }, + "operationType": { + "description": "Contains information about the specific type of the operation used.", + "type": "string" + }, + "inputData": { + "description": "unit input (type to be specified by the child units)" } } } \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/reduce.json b/dist/js/schema/workflow/unit/reduce.json index 29f8aa6e2..188475153 100644 --- a/dist/js/schema/workflow/unit/reduce.json +++ b/dist/js/schema/workflow/unit/reduce.json @@ -7,84 +7,18 @@ "flowchartId", "input", "mapFlowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", "type" ], - "additionalProperties": true, "properties": { - "type": { - "const": "reduce", - "description": "type of the unit", - "type": "string" - }, - "mapFlowchartId": { - "description": "corresponding map unit flowchart ID", - "type": "string" - }, - "input": { - "description": "input information for reduce unit", - "type": "array", - "items": { - "type": "object", - "required": [ - "operation", - "arguments" - ], - "properties": { - "operation": { - "description": "reduce operation, e.g. aggregate", - "type": "string" - }, - "arguments": { - "description": "arguments which are passed to reduce operation function", - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "description": "entity identity", "type": "string" }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -97,6 +31,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -107,29 +45,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -137,29 +63,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -167,29 +81,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -197,29 +99,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -229,6 +119,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -249,6 +150,58 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "reduce" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" + }, + "mapFlowchartId": { + "description": "corresponding map unit flowchart ID", + "type": "string" + }, + "input": { + "description": "input information for reduce unit", + "type": "array", + "items": { + "type": "object", + "required": [ + "operation", + "arguments" + ], + "properties": { + "operation": { + "description": "reduce operation, e.g. aggregate", + "type": "string" + }, + "arguments": { + "description": "arguments which are passed to reduce operation function", + "type": "array", + "items": { + "type": "string" + } + } + } + } } } } \ No newline at end of file diff --git a/dist/js/schema/workflow/unit/subworkflow.json b/dist/js/schema/workflow/unit/subworkflow.json index 1ebe2fbcc..1868f49b7 100644 --- a/dist/js/schema/workflow/unit/subworkflow.json +++ b/dist/js/schema/workflow/unit/subworkflow.json @@ -4,57 +4,19 @@ "title": "subworkflow unit schema", "type": "object", "required": [ - "type", - "flowchartId" + "flowchartId", + "monitors", + "name", + "postProcessors", + "preProcessors", + "results", + "type" ], - "additionalProperties": true, "properties": { - "type": { - "const": "subworkflow", - "description": "type of the unit", - "type": "string" - }, "_id": { - "type": "string", - "description": "entity identity" - }, - "isDraft": { - "type": "boolean" - }, - "name": { - "description": "name of the unit. e.g. pw_scf", - "type": "string" - }, - "status": { - "description": "Status of the unit.", - "type": "string", - "enum": [ - "idle", - "active", - "warning", - "error", - "finished" - ] - }, - "head": { - "description": "Whether this unit is the first one to be executed.", - "type": "boolean" - }, - "flowchartId": { - "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "description": "entity identity", "type": "string" }, - "next": { - "description": "Next unit's flowchartId. If empty, the current unit is the last.", - "type": "string" - }, - "enableRender": { - "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", - "type": "boolean" - }, - "context": { - "type": "object" - }, "slug": { "description": "entity slug", "type": "string" @@ -67,6 +29,10 @@ "type": "string", "default": "2022.8.16" }, + "name": { + "description": "entity name", + "type": "string" + }, "isDefault": { "description": "Identifies that entity is defaultable", "type": "boolean", @@ -77,29 +43,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "postProcessors": { @@ -107,29 +61,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "monitors": { @@ -137,29 +79,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "results": { @@ -167,29 +97,17 @@ "type": "array", "items": { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "runtime item schema", - "oneOf": [ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "name result schema", - "type": "object", - "properties": { - "name": { - "description": "The name of this item. e.g. scf_accuracy", - "type": "string" - } - }, - "required": [ - "name" - ] - }, - { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "RuntimeItemString", - "description": "name of runtime item in shortened notation", + "title": "runtime item name object schema", + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "description": "The name of this item. e.g. scf_accuracy", "type": "string" } - ] + } } }, "tags": { @@ -199,6 +117,17 @@ "type": "string" } }, + "status": { + "type": "string", + "description": "Status of the unit.", + "enum": [ + "idle", + "active", + "warning", + "error", + "finished" + ] + }, "statusTrack": { "type": "array", "items": { @@ -219,6 +148,30 @@ } } } + }, + "isDraft": { + "type": "boolean" + }, + "type": { + "description": "type of the unit", + "type": "string", + "const": "subworkflow" + }, + "head": { + "description": "Whether this unit is the first one to be executed.", + "type": "boolean" + }, + "flowchartId": { + "description": "Identity of the unit in the workflow. Used to trace the execution flow of the workflow.", + "type": "string" + }, + "next": { + "description": "Next unit's flowchartId. If empty, the current unit is the last.", + "type": "string" + }, + "enableRender": { + "description": "Whether Rupy should attempt to use Jinja templating to add context variables into the unit", + "type": "boolean" } } } \ No newline at end of file diff --git a/dist/js/schemas.json b/dist/js/schemas.json index 8dee93b89..7f89a5c00 100644 --- a/dist/js/schemas.json +++ b/dist/js/schemas.json @@ -1 +1 @@ -[{"$id":"apse/db/materials-project/2025.9.25/summary","$schema":"http://json-schema.org/draft-07/schema#","title":"Materials Project Schema","description":"JSON schema for Materials Project API summary endpoint response","type":"object","required":["builder_meta","nsites","elements","nelements","composition","composition_reduced","formula_pretty","formula_anonymous","chemsys","volume","density","density_atomic","symmetry","material_id","deprecated","last_updated","origins","warnings","structure","property_name","task_ids","uncorrected_energy_per_atom","energy_per_atom","formation_energy_per_atom","energy_above_hull","is_stable","decomposes_to","xas","band_gap","cbm","vbm","efermi","is_gap_direct","is_metal","bandstructure","dos","is_magnetic","ordering","total_magnetization","total_magnetization_normalized_vol","total_magnetization_normalized_formula_units","num_magnetic_sites","num_unique_magnetic_sites","types_of_magnetic_species","bulk_modulus","shear_modulus","universal_anisotropy","homogeneous_poisson","possible_species","has_props","theoretical","database_IDs"],"definitions":{"bandstructure_data":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","is_gap_direct","is_metal","magnetic_ordering","equivalent_labels","nbands","direct_gap"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"oneOf":[{"type":"object","properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},"required":["band_index","kpoint_index","kpoint","energy","projections"]},{"type":"null"}]},"vbm":{"oneOf":[{"type":"object","properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},"required":["band_index","kpoint_index","kpoint","energy","projections"]},{"type":"null"}]},"efermi":{"type":["number","null"]},"is_gap_direct":{"type":"boolean"},"is_metal":{"type":"boolean"},"magnetic_ordering":{"type":"string"},"equivalent_labels":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string"}}}},"nbands":{"type":"number"},"direct_gap":{"type":"number"}}},"band_extrema":{"type":"object","required":["band_index","kpoint_index","kpoint","energy","projections"],"properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"dos_data":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}},"properties":{"builder_meta":{"type":"object","required":["emmet_version","pymatgen_version","run_id","database_version","build_date","license"],"properties":{"emmet_version":{"type":"string","description":"Version of emmet library used"},"pymatgen_version":{"type":"string","description":"Version of pymatgen library used"},"run_id":{"type":"string","description":"Unique identifier for the calculation run"},"batch_id":{"type":["string","null"],"description":"Batch identifier for grouped calculations"},"database_version":{"type":"string","description":"Version of the Materials Project database"},"build_date":{"type":"string","format":"date-time","description":"Date when the calculation was performed"},"license":{"type":"string","description":"License information for the data"}}},"nsites":{"type":"integer","description":"Number of sites in the structure"},"elements":{"type":"array","description":"List of chemical elements in the material","items":{"type":"string"}},"nelements":{"type":"integer","description":"Number of unique elements"},"composition":{"type":"object","description":"Chemical composition as element: count mapping","additionalProperties":{"type":"number"}},"composition_reduced":{"type":"object","description":"Reduced chemical composition","additionalProperties":{"type":"number"}},"formula_pretty":{"type":"string","description":"Human-readable chemical formula"},"formula_anonymous":{"type":"string","description":"Anonymous chemical formula"},"chemsys":{"type":"string","description":"Chemical system identifier"},"volume":{"type":"number","description":"Unit cell volume in cubic Angstroms"},"density":{"type":"number","description":"Material density in g/cm³"},"density_atomic":{"type":"number","description":"Atomic density"},"symmetry":{"type":"object","required":["crystal_system","symbol","number","point_group","symprec","angle_tolerance","version"],"properties":{"crystal_system":{"type":"string","description":"Crystal system classification"},"symbol":{"type":"string","description":"Space group symbol"},"hall":{"type":["string","null"],"description":"Hall symbol"},"number":{"type":"integer","description":"Space group number"},"point_group":{"type":"string","description":"Point group symbol"},"symprec":{"type":"number","description":"Symmetry precision tolerance"},"angle_tolerance":{"type":"number","description":"Angle tolerance for symmetry analysis"},"version":{"type":"string","description":"Version of symmetry analysis software"}}},"material_id":{"type":"string","description":"Unique Materials Project identifier"},"deprecated":{"type":"boolean","description":"Whether this material entry is deprecated"},"deprecation_reasons":{"type":["array","null"],"description":"Reasons for deprecation if applicable","items":{"type":"string"}},"last_updated":{"type":"string","format":"date-time","description":"Last update timestamp"},"origins":{"type":"array","items":{"type":"object","required":["name","task_id","last_updated"],"properties":{"name":{"type":"string","description":"Origin name (e.g., structure, energy, magnetism)"},"task_id":{"type":"string","description":"Task identifier for this origin"},"last_updated":{"type":"string","format":"date-time","description":"Last update for this origin"}}}},"warnings":{"type":"array","description":"Warning messages","items":{"type":"string"}},"structure":{"type":"object","required":["@module","@class","charge","lattice","properties","sites"],"properties":{"@module":{"type":"string","description":"Python module name"},"@class":{"type":"string","description":"Python class name"},"charge":{"type":"number","description":"Total charge of the structure"},"lattice":{"type":"object","required":["matrix","pbc","a","b","c","alpha","beta","gamma","volume"],"properties":{"matrix":{"type":"array","minItems":3,"maxItems":3,"description":"Lattice matrix","items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"description":"Periodic boundary conditions","items":{"type":"boolean"}},"a":{"type":"number","description":"Lattice parameter a"},"b":{"type":"number","description":"Lattice parameter b"},"c":{"type":"number","description":"Lattice parameter c"},"alpha":{"type":"number","description":"Lattice angle alpha"},"beta":{"type":"number","description":"Lattice angle beta"},"gamma":{"type":"number","description":"Lattice angle gamma"},"volume":{"type":"number","description":"Unit cell volume"}}},"properties":{"type":"object","description":"Additional structure properties"},"sites":{"type":"array","items":{"type":"object","required":["species","abc","label","xyz"],"properties":{"species":{"type":"array","items":{"type":"object","required":["element","occu"],"properties":{"element":{"type":"string","description":"Chemical element"},"occu":{"type":"number","description":"Occupancy"}}}},"abc":{"type":"array","minItems":3,"maxItems":3,"description":"Fractional coordinates","items":{"type":"number"}},"properties":{"type":"object","properties":{"magmom":{"type":"number","description":"Magnetic moment"}}},"label":{"type":"string","description":"Site label"},"xyz":{"type":"array","minItems":3,"maxItems":3,"description":"Cartesian coordinates","items":{"type":"number"}}}}}}},"property_name":{"type":"string","description":"Name of the property endpoint"},"task_ids":{"type":"array","description":"List of task identifiers","items":{"type":"string"}},"uncorrected_energy_per_atom":{"type":"number","description":"Uncorrected energy per atom in eV"},"energy_per_atom":{"type":"number","description":"Energy per atom in eV"},"formation_energy_per_atom":{"type":"number","description":"Formation energy per atom in eV"},"energy_above_hull":{"type":"number","description":"Energy above convex hull in eV"},"is_stable":{"type":"boolean","description":"Whether the material is thermodynamically stable"},"equilibrium_reaction_energy_per_atom":{"type":["number","null"],"description":"Equilibrium reaction energy per atom in eV"},"decomposes_to":{"oneOf":[{"type":"array","items":{"type":"object","required":["material_id","formula","amount"],"properties":{"material_id":{"type":"string","description":"Material ID of decomposition product"},"formula":{"type":"string","description":"Formula of decomposition product"},"amount":{"type":"number","description":"Amount of decomposition product"}}}},{"type":"null"}]},"xas":{"oneOf":[{"type":"array","items":{"type":"object","required":["edge","absorbing_element","spectrum_type"],"properties":{"edge":{"type":"string","description":"XAS edge type (K, L, M, etc.)"},"absorbing_element":{"type":"string","description":"Element for XAS absorption"},"spectrum_type":{"type":"string","description":"Type of XAS spectrum (XANES, EXAFS, XAFS)"}}}},{"type":"null"}]},"grain_boundaries":{"type":["object","null"],"description":"Grain boundary information"},"band_gap":{"type":"number","description":"Band gap in eV"},"cbm":{"type":["number","null"],"description":"Conduction band minimum in eV"},"vbm":{"type":["number","null"],"description":"Valence band maximum in eV"},"efermi":{"type":["number","null"],"description":"Fermi energy in eV"},"is_gap_direct":{"type":"boolean","description":"Whether the band gap is direct"},"is_metal":{"type":"boolean","description":"Whether the material is metallic"},"es_source_calc_id":{"type":["string","null"],"description":"Source calculation ID for electronic structure"},"bandstructure":{"oneOf":[{"type":"object","properties":{"setyawan_curtarolo":{"oneOf":[{"type":"object","properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"oneOf":[{"type":"object","properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},"required":["band_index","kpoint_index","kpoint","energy","projections"]},{"type":"null"}]},"vbm":{"oneOf":[{"type":"object","properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},"required":["band_index","kpoint_index","kpoint","energy","projections"]},{"type":"null"}]},"efermi":{"type":["number","null"]},"is_gap_direct":{"type":"boolean"},"is_metal":{"type":"boolean"},"magnetic_ordering":{"type":"string"},"equivalent_labels":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string"}}}},"nbands":{"type":"number"},"direct_gap":{"type":"number"}},"required":["task_id","band_gap","cbm","vbm","efermi","is_gap_direct","is_metal","magnetic_ordering","equivalent_labels","nbands","direct_gap"]},{"type":"null"}]},"hinuma":{"oneOf":[{"type":"object","properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"oneOf":[{"type":"object","properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},"required":["band_index","kpoint_index","kpoint","energy","projections"]},{"type":"null"}]},"vbm":{"oneOf":[{"type":"object","properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},"required":["band_index","kpoint_index","kpoint","energy","projections"]},{"type":"null"}]},"efermi":{"type":["number","null"]},"is_gap_direct":{"type":"boolean"},"is_metal":{"type":"boolean"},"magnetic_ordering":{"type":"string"},"equivalent_labels":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string"}}}},"nbands":{"type":"number"},"direct_gap":{"type":"number"}},"required":["task_id","band_gap","cbm","vbm","efermi","is_gap_direct","is_metal","magnetic_ordering","equivalent_labels","nbands","direct_gap"]},{"type":"null"}]},"latimer_munro":{"oneOf":[{"type":"object","properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"oneOf":[{"type":"object","properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},"required":["band_index","kpoint_index","kpoint","energy","projections"]},{"type":"null"}]},"vbm":{"oneOf":[{"type":"object","properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},"required":["band_index","kpoint_index","kpoint","energy","projections"]},{"type":"null"}]},"efermi":{"type":["number","null"]},"is_gap_direct":{"type":"boolean"},"is_metal":{"type":"boolean"},"magnetic_ordering":{"type":"string"},"equivalent_labels":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string"}}}},"nbands":{"type":"number"},"direct_gap":{"type":"number"}},"required":["task_id","band_gap","cbm","vbm","efermi","is_gap_direct","is_metal","magnetic_ordering","equivalent_labels","nbands","direct_gap"]},{"type":"null"}]}}},{"type":"null"}]},"dos":{"oneOf":[{"type":"object","properties":{"total":{"type":"object","additionalProperties":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}},"elemental":{"type":"object","additionalProperties":{"type":"object","properties":{"total":{"type":"object","additionalProperties":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}},"s":{"type":"object","additionalProperties":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}},"p":{"type":"object","additionalProperties":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}},"d":{"type":"object","additionalProperties":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}}}}},"orbital":{"type":"object","properties":{"s":{"type":"object","additionalProperties":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}},"p":{"type":"object","additionalProperties":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}},"d":{"type":"object","additionalProperties":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}}}},"magnetic_ordering":{"type":"string","description":"Magnetic ordering type"}}},{"type":"null"}]},"dos_energy_up":{"type":["object","null"],"description":"Density of states for spin up"},"dos_energy_down":{"type":["object","null"],"description":"Density of states for spin down"},"is_magnetic":{"type":"boolean","description":"Whether the material is magnetic"},"ordering":{"type":"string","description":"Magnetic ordering"},"total_magnetization":{"type":"number","description":"Total magnetization"},"total_magnetization_normalized_vol":{"type":"number","description":"Volume-normalized magnetization"},"total_magnetization_normalized_formula_units":{"type":"number","description":"Formula unit normalized magnetization"},"num_magnetic_sites":{"type":"number","description":"Number of magnetic sites"},"num_unique_magnetic_sites":{"type":"number","description":"Number of unique magnetic sites"},"types_of_magnetic_species":{"type":"array","description":"Types of magnetic species","items":{"type":"string"}},"bulk_modulus":{"oneOf":[{"type":"object","properties":{"voigt":{"type":"number","description":"Voigt bulk modulus in GPa"},"reuss":{"type":"number","description":"Reuss bulk modulus in GPa"},"vrh":{"type":"number","description":"Voigt-Reuss-Hill bulk modulus in GPa"}},"required":["voigt","reuss","vrh"]},{"type":"null"}]},"shear_modulus":{"oneOf":[{"type":"object","properties":{"voigt":{"type":"number","description":"Voigt shear modulus in GPa"},"reuss":{"type":"number","description":"Reuss shear modulus in GPa"},"vrh":{"type":"number","description":"Voigt-Reuss-Hill shear modulus in GPa"}},"required":["voigt","reuss","vrh"]},{"type":"null"}]},"universal_anisotropy":{"oneOf":[{"type":"number"},{"type":"null"}],"description":"Universal anisotropy index"},"homogeneous_poisson":{"oneOf":[{"type":"number"},{"type":"null"}],"description":"Homogeneous Poisson ratio"},"e_total":{"type":["number","null"],"description":"Total energy"},"e_ionic":{"type":["number","null"],"description":"Ionic energy"},"e_electronic":{"type":["number","null"],"description":"Electronic energy"},"n":{"type":["number","null"],"description":"Refractive index"},"e_ij_max":{"type":["number","null"],"description":"Maximum elastic constant"},"weighted_surface_energy_EV_PER_ANG2":{"type":["number","null"],"description":"Weighted surface energy in eV/Ų"},"weighted_surface_energy":{"type":["number","null"],"description":"Weighted surface energy"},"weighted_work_function":{"type":["number","null"],"description":"Weighted work function"},"surface_anisotropy":{"type":["number","null"],"description":"Surface anisotropy"},"shape_factor":{"type":["number","null"],"description":"Shape factor"},"has_reconstructed":{"type":["boolean","null"],"description":"Whether surface has reconstruction"},"possible_species":{"oneOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Possible ionic species"},"has_props":{"type":"object","required":["materials","thermo","xas","grain_boundaries","chemenv","electronic_structure","absorption","bandstructure","dos","magnetism","elasticity","dielectric","piezoelectric","surface_properties","oxi_states","provenance","charge_density","eos","phonon","insertion_electrodes","substrates"],"properties":{"materials":{"type":"boolean"},"thermo":{"type":"boolean"},"xas":{"type":"boolean"},"grain_boundaries":{"type":"boolean"},"chemenv":{"type":"boolean"},"electronic_structure":{"type":"boolean"},"absorption":{"type":"boolean"},"bandstructure":{"type":"boolean"},"dos":{"type":"boolean"},"magnetism":{"type":"boolean"},"elasticity":{"type":"boolean"},"dielectric":{"type":"boolean"},"piezoelectric":{"type":"boolean"},"surface_properties":{"type":"boolean"},"oxi_states":{"type":"boolean"},"provenance":{"type":"boolean"},"charge_density":{"type":"boolean"},"eos":{"type":"boolean"},"phonon":{"type":"boolean"},"insertion_electrodes":{"type":"boolean"},"substrates":{"type":"boolean"}}},"theoretical":{"type":"boolean","description":"Whether this is a theoretical material"},"database_IDs":{"type":"object","properties":{"icsd":{"type":"array","description":"ICSD database identifiers","items":{"type":"string"}}}}}},{"$id":"apse/db/materials-project/legacy/material","$schema":"http://json-schema.org/draft-07/schema#","title":"Materials Project Legacy Material schema","description":"JSON schema for Materials Project API legacy material endpoint response","type":"object","required":["material_id","energy","energy_per_atom","volume","formation_energy_per_atom","nsites","unit_cell_formula","pretty_formula","is_hubbard","elements","nelements","e_above_hull","hubbards","is_compatible","spacegroup","task_ids","band_gap","density","icsd_ids","cif","total_magnetization","oxide_type","tags","deprecated","full_formula"],"properties":{"energy":{"type":"number","description":"Total energy"},"energy_per_atom":{"type":"number","description":"Energy per atom"},"volume":{"type":"number","description":"Unit cell volume"},"formation_energy_per_atom":{"type":"number","description":"Formation energy per atom"},"nsites":{"type":"integer","description":"Number of sites in unit cell"},"unit_cell_formula":{"type":"object","description":"Unit cell formula as element counts","additionalProperties":{"type":"number"}},"pretty_formula":{"type":"string","description":"Pretty formatted chemical formula"},"is_hubbard":{"type":"boolean","description":"Whether Hubbard U correction was applied"},"elements":{"type":"array","description":"List of elements in the material","items":{"type":"string"}},"nelements":{"type":"integer","description":"Number of distinct elements"},"e_above_hull":{"type":["number","null"],"description":"Energy above convex hull"},"hubbards":{"type":"object","description":"Hubbard U values","additionalProperties":true},"is_compatible":{"type":"boolean","description":"Whether material is compatible"},"spacegroup":{"type":"object","description":"Spacegroup information","properties":{"symprec":{"type":"number"},"source":{"type":"string"},"symbol":{"type":"string"},"number":{"type":"integer"},"point_group":{"type":"string"},"crystal_system":{"type":"string"},"hall":{"type":"string"}}},"task_ids":{"type":"array","description":"List of task IDs","items":{"type":"string"}},"band_gap":{"type":"number","description":"Band gap value"},"density":{"type":"number","description":"Material density"},"icsd_id":{"type":["integer","null"],"description":"ICSD ID (single)"},"icsd_ids":{"type":"array","description":"List of ICSD IDs","items":{"type":"integer"}},"cif":{"type":"string","description":"CIF file content"},"total_magnetization":{"type":"number","description":"Total magnetization"},"material_id":{"type":"string","description":"Material ID from Materials Project"},"oxide_type":{"type":"string","description":"Oxide type classification"},"tags":{"type":"array","description":"Material tags/names","items":{"type":"string"}},"elasticity":{"type":["object","null"],"description":"Elasticity data","properties":{"G_Reuss":{"type":"number","description":"Reuss shear modulus in GPa"},"G_VRH":{"type":"number","description":"Voigt-Reuss-Hill shear modulus in GPa"},"G_Voigt":{"type":"number","description":"Voigt shear modulus in GPa"},"G_Voigt_Reuss_Hill":{"type":"number","description":"Voigt-Reuss-Hill shear modulus in GPa (alternative field)"},"K_Reuss":{"type":"number","description":"Reuss bulk modulus in GPa"},"K_VRH":{"type":"number","description":"Voigt-Reuss-Hill bulk modulus in GPa"},"K_Voigt":{"type":"number","description":"Voigt bulk modulus in GPa"},"K_Voigt_Reuss_Hill":{"type":"number","description":"Voigt-Reuss-Hill bulk modulus in GPa (alternative field)"},"elastic_anisotropy":{"type":"number","description":"Elastic anisotropy"},"elastic_tensor":{"type":"array","description":"6x6 elastic tensor in GPa","items":{"type":"array","items":{"type":"number"}}},"homogeneous_poisson":{"type":"number","description":"Homogeneous Poisson ratio"},"poisson_ratio":{"type":"number","description":"Poisson ratio"},"universal_anisotropy":{"type":"number","description":"Universal elastic anisotropy"},"elastic_tensor_original":{"type":"array","description":"Original 6x6 elastic tensor in GPa","items":{"type":"array","items":{"type":"number"}}},"compliance_tensor":{"type":"array","description":"6x6 compliance tensor in GPa^-1","items":{"type":"array","items":{"type":"number"}}},"warnings":{"type":"array","description":"Warnings about elastic properties","items":{"type":"string"}},"nsites":{"type":"integer","description":"Number of sites in the structure"}}},"piezo":{"type":["object","null"],"description":"Piezoelectric data"},"diel":{"type":["object","null"],"description":"Dielectric data"},"deprecated":{"type":"boolean","description":"Whether material is deprecated"},"full_formula":{"type":"string","description":"Full chemical formula"}}},{"$id":"apse/db/nist-jarvis/2024.3.13/atoms","$schema":"http://json-schema.org/draft-07/schema#","title":"NIST JARVIS Atoms schema","description":"NIST J.A.R.V.I.S. db entry `atoms` key schema. Based on https://figshare.com/articles/dataset/Monolayer_data_for_heterostructure/22344571","type":"object","additionalProperties":false,"properties":{"lattice_mat":{"type":"array","description":"Crystal lattice vectors as a 3x3 matrix, in Angstroms","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"coords":{"type":"array","description":"Atomic coordinates for each atom in the unit cell","minItems":1,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"elements":{"type":"array","description":"Atomic elements for each atom in the unit cell in the same order as `coords`","minItems":1,"items":{"type":"string"}},"abc":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"angles":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"cartesian":{"type":"boolean","description":"True if the coordinates are in Cartesian space, false if in fractional space"},"props":{"type":"array","description":"Additional properties for each of the atoms","items":{"type":"string"}}}},{"$id":"apse/db/nist-jarvis/2024.3.13/db-entry","$schema":"http://json-schema.org/draft-07/schema#","title":"NIST JARVIS db entry schema","description":"NIST J.A.R.V.I.S. db entry `atoms` key schema. Based on https://figshare.com/articles/dataset/Monolayer_data_for_heterostructure/22344571","type":"object","additionalProperties":true,"properties":{"atoms":{"$schema":"http://json-schema.org/draft-07/schema#","title":"NIST JARVIS Atoms schema","description":"NIST J.A.R.V.I.S. db entry `atoms` key schema. Based on https://figshare.com/articles/dataset/Monolayer_data_for_heterostructure/22344571","type":"object","additionalProperties":false,"properties":{"lattice_mat":{"type":"array","description":"Crystal lattice vectors as a 3x3 matrix, in Angstroms","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"coords":{"type":"array","description":"Atomic coordinates for each atom in the unit cell","minItems":1,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"elements":{"type":"array","description":"Atomic elements for each atom in the unit cell in the same order as `coords`","minItems":1,"items":{"type":"string"}},"abc":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"angles":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"cartesian":{"type":"boolean","description":"True if the coordinates are in Cartesian space, false if in fractional space"},"props":{"type":"array","description":"Additional properties for each of the atoms","items":{"type":"string"}}}},"jid":{"type":"string","description":"The id of the entry in the database, e.g. JVASP-677"}}},{"$id":"apse/db/third-party-sources","$schema":"http://json-schema.org/draft-07/schema#","title":"third party sources","type":"object","required":["source"],"properties":{"source":{"type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/atomic-positions","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic positions schema","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1493","type":"object","additionalProperties":false,"properties":{"card_option":{"type":"string","enum":["alat","bohr","angstrom","crystal","crystal_sg"],"default":"alat"},"values":{"type":"array","items":{"type":"object","required":["x","y","z"],"additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom as specified in ATOMIC_SPECIES"},"x":{"type":"number","description":"atomic positions"},"y":{"type":"number","description":"atomic positions"},"z":{"type":"number","description":"atomic positions"},"if_pos(1)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(2)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(3)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1}}}}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/atomic-species","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic species schema","type":"object","additionalProperties":false,"properties":{"values":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"Mass_X":{"type":"number","description":"mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"},"PseudoPot_X":{"type":"string","description":"PseudoPot_X"}}}}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/cell","$schema":"http://json-schema.org/draft-07/schema#","title":"cell schema","type":"object","oneOf":[{"type":"object","additionalProperties":false,"properties":{"cell_dynamics":{"type":"string","enum":["none","sd","damp-pr","damp-w","bfgs"],"default":"bfgs","description":"CASE ( calculation == 'vc-relax' )"}}},{"type":"object","additionalProperties":false,"properties":{"cell_dynamics":{"type":"string","enum":["none","pr","w"],"description":"CASE ( calculation == 'vc-md' )"}}}],"additionalProperties":false,"properties":{"press":{"type":"number","description":"Target pressure [KBar] in a variable-cell md or relaxation run.","default":0},"wmass":{"type":"number","description":"Fictitious cell mass [amu] for variable-cell simulations (both 'vc-md' and 'vc-relax'). Default: 0.75*Tot_Mass/pi**2 for Parrinello-Rahman MD; 0.75*Tot_Mass/pi**2/Omega**(2/3) for Wentzcovitch MD"},"cell_factor":{"type":"number","description":"Used in the construction of the pseudopotential tables. It should exceed the maximum linear contraction of the cell during a simulation. Default: 2.0 for variable-cell calculations, 1.0 otherwise"},"press_conv_thr":{"type":"number","default":0.5,"description":"Convergence threshold on the pressure for variable cell relaxation ('vc-relax' : note that the other convergence thresholds for ionic relaxation apply as well)."},"cell_dofree":{"type":"string","enum":["all","ibrav","a","b","c","fixa","fixb","fixc","x","y","xy","xz","xyz","shape","volume","2Dxy","2Dshape","epitaxial_ab","epitaxial_ac","epitaxial_bc"],"default":"all","description":"Select which of the cell parameters should be moved"}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/cell-parameters","$schema":"http://json-schema.org/draft-07/schema#","title":"cell parameters schema","type":"object","additionalProperties":false,"properties":{"card_option":{"type":"string","enum":["alat","bohr","angstrom"],"description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"values":{"type":"object","additionalProperties":false,"properties":{"v1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/control","$schema":"http://json-schema.org/draft-07/schema#","title":"control schema","type":"object","additionalProperties":false,"properties":{"calculation":{"description":"A string describing the task to be performed","type":"string","enum":["scf","nscf","bands","relax","md","vc-relax","vc-md"],"default":"scf"},"title":{"description":"reprinted on output.","type":"string","default":""},"verbosity":{"description":"Currently two verbosity levels are implemented: high, low. 'debug' and 'medium' have the same effect as 'high'; 'default' and 'minimal' as 'low'","type":"string","enum":["high","low","debug","medium","minimal","default"],"default":"low"},"restart_mode":{"type":"string","enum":["from_scratch","restart"],"default":"from_scratch"},"wf_collect":{"type":"boolean","description":"OBSOLETE - NO LONGER IMPLEMENTED"},"nstep":{"description":"Default: 1 if calculation == 'scf', 'nscf', 'bands'; 50 for the other cases; Number of molecular-dynamics or structural optimization steps performed in this run. If set to 0, the code performs a quick \"dry run\", stopping just after initialization. This is useful to check for input correctness and to have the summary printed. NOTE: in MD calculations, the code will perform \"nstep\" steps even if restarting from a previously interrupted calculation.","type":"number","default":1},"iprint":{"description":"band energies are written every iprint iterations","type":"number"},"tstress":{"type":"boolean","default":false,"description":"calculate stress. It is set to .TRUE. automatically if calculation == 'vc-md' or 'vc-relax'"},"tprnfor":{"type":"boolean","description":"calculate forces. It is set to .TRUE. automatically if calculation == 'relax','md','vc-md'"},"dt":{"type":"number","description":"time step for molecular dynamics, in Rydberg atomic units (1 a.u.=4.8378 * 10^-17 s : beware, the CP code uses Hartree atomic units, half that much!!!)","default":20},"outdir":{"type":"string","description":"input, temporary, output files are found in this directory, see also wfcdir"},"wfcdir":{"type":"string","description":"This directory specifies where to store files generated by each processor (*.wfc{N}, *.igk{N}, etc.). Useful for machines without a parallel file system: set wfcdir to a local file system, while outdir should be a parallel or network file system, visible to all processors. Beware: in order to restart from interrupted runs, or to perform further calculations using the produced data files, you may need to copy files to outdir. Works only for pw.x."},"prefix":{"type":"string","description":"prepended to input/output filenames: prefix.wfc, prefix.rho, etc.","default":"pwscf"},"lkpoint_dir":{"type":"boolean","description":"OBSOLETE - NO LONGER IMPLEMENTED"},"max_seconds":{"type":"number","default":10000000,"description":"Jobs stops after max_seconds CPU time. Use this option in conjunction with option restart_mode if you need to split a job too long to complete into shorter jobs that fit into your batch queues."},"etot_conv_thr":{"type":"number","default":0.0001,"description":"Convergence threshold on total energy (a.u) for ionic minimization: the convergence criterion is satisfied when the total energy changes less than etot_conv_thr between two consecutive scf steps. Note that etot_conv_thr is extensive, like the total energy. See also forc_conv_thr - both criteria must be satisfied"},"forc_conv_thr":{"type":"number","default":0.001,"description":"Convergence threshold on forces (a.u) for ionic minimization: the convergence criterion is satisfied when all components of all forces are smaller than forc_conv_thr. See also etot_conv_thr - both criteria must be satisfied"},"disk_io":{"type":"string","enum":["high","medium","low","nowf","none"],"description":"Specifies the amount of disk I/O activity: (only for binary files and xml data file in data directory; other files printed at each molecular dynamics / structural optimization step are not controlled by this option )"},"pseudo_dir":{"type":"string","description":"directory containing pseudopotential files. Default: value of the $ESPRESSO_PSEUDO environment variable if set; '$HOME/espresso/pseudo/' otherwise"},"tefield":{"type":"boolean","default":false,"description":"If .TRUE. a saw-like potential simulating an electric field is added to the bare ionic potential. See variables edir, eamp, emaxpos, eopreg for the form and size of the added potential."},"dipfield":{"type":"boolean","default":false,"description":"If .TRUE. and tefield==.TRUE. a dipole correction is also added to the bare ionic potential - implements the recipe of L. Bengtsson, PRB 59, 12301 (1999). See variables edir, emaxpos, eopreg for the form of the correction. Must be used ONLY in a slab geometry, for surface calculations, with the discontinuity FALLING IN THE EMPTY SPACE."},"lelfield":{"type":"boolean","default":false,"description":"If .TRUE. a homogeneous finite electric field described through the modern theory of the polarization is applied. This is different from tefield == .true. !"},"nberrycyc":{"type":"integer","default":1,"description":"In the case of a finite electric field ( lelfield == .TRUE. ) it defines the number of iterations for converging the wavefunctions in the electric field Hamiltonian, for each external iteration on the charge density"},"lorbm":{"type":"boolean","default":false,"description":"If .TRUE. perform orbital magnetization calculation."},"lberry":{"type":"boolean","default":false,"description":"If .TRUE. perform a Berry phase calculation. See the header of PW/src/bp_c_phase.f90 for documentation"},"gdir":{"type":"number","description":"For Berry phase calculation: direction of the k-point strings in reciprocal space. Allowed values: 1, 2, 3 1=first, 2=second, 3=third reciprocal lattice vector For calculations with finite electric fields (lelfield==.true.) \"gdir\" is the direction of the field."},"nppstr":{"type":"number","description":"For Berry phase calculation: number of k-points to be calculated along each symmetry-reduced string. The same for calculation with finite electric fields (lelfield==.true.)."},"gate":{"type":"boolean","default":false,"description":"In the case of charged cells (tot_charge .ne. 0) setting gate = .TRUE. represents the counter charge (i.e. -tot_charge) not by a homogeneous background charge but with a charged plate, which is placed at zgate (see below). Details of the gate potential can be found in T. Brumme, M. Calandra, F. Mauri; PRB 89, 245406 (2014). Note, that in systems which are not symmetric with respect to the plate, one needs to enable the dipole correction! (dipfield=.true.). Currently, symmetry can be used with gate=.true. but carefully check that no symmetry is included which maps z to -z even if in principle one could still use them for symmetric systems (i.e. no dipole correction). For nosym=.false. verbosity is set to 'high'. Note: this option was called \"monopole\" in v6.0 and 6.1 of pw.x"},"twochem":{"type":"boolean","default":false,"description":"IF .TRUE. , a two chemical potential calculation for the simulation of photoexcited systems is performed, constraining a fraction of the electrons in the conduction manifold."},"lfcp":{"type":"boolean","default":false,"description":"If .TRUE. perform a constant bias potential (constant-mu) calculation for a system with ESM method. See the header of PW/src/fcp_module.f90 for documentation. To perform the calculation, you must set a namelist FCP."},"trism":{"type":"boolean","default":false,"description":"If .TRUE. perform a 3D-RISM-SCF calculation [for details see H.Sato et al., JCP 112, 9463 (2000), doi:10.1063/1.481564]. The solvent's distributions are calculated by 3D-RISM, though solute is treated as SCF. The charge density and the atomic positions are optimized, simultaneously with the solvents. To perform the calculation, you must set a namelist RISM and a card SOLVENTS. If assume_isolated = 'esm' and esm_bc = 'bc1', Laue-RISM is calculated instead of 3D-RISM and coupled with ESM method (i.e. ESM-RISM). [for details see S.Nishihara and M.Otani, PRB 96, 115429 (2017)]. The default of mixing_beta is 0.2 for both 3D-RISM and Laue-RISM. For structural relaxation with BFGS, ignore_wolfe is always .TRUE. ."}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/electrons","$schema":"http://json-schema.org/draft-07/schema#","title":"electrons schema","type":"object","additionalProperties":false,"properties":{"electron_maxstep":{"type":"integer","default":100,"description":"maximum number of iterations in a scf step. If exact exchange is active, this will affect the inner loops."},"exx_maxstep":{"type":"integer","default":100,"description":"maximum number of outer iterations in a scf calculation with exact exchange."},"scf_must_converge":{"type":"boolean","default":true,"description":"If .false. do not stop molecular dynamics or ionic relaxation when electron_maxstep is reached. Use with care."},"conv_thr":{"type":"number"},"adaptive_thr":{"type":"boolean","default":false,"description":"If .TRUE. this turns on the use of an adaptive conv_thr for the inner scf loops when using EXX."},"conv_thr_init":{"type":"number","description":"When adaptive_thr = .TRUE. this is the convergence threshold used for the first scf cycle."},"conv_thr_multi":{"type":"number","description":"When adaptive_thr = .TRUE. the convergence threshold for each scf cycle is given by: max( conv_thr, conv_thr_multi * dexx )"},"mixing_mode":{"type":"string","enum":["plain","TF","local-TF"],"default":"plain"},"mixing_beta":{"type":"number","description":"mixing factor for self-consistency"},"mixing_ndim":{"type":"integer","default":8,"description":"number of iterations used in mixing scheme"},"mixing_fixed_ns":{"type":"integer","default":0,"description":"For DFT+U : number of iterations with fixed ns ( ns is the atomic density appearing in the Hubbard term )."},"diagonalization":{"type":"string","enum":["david","cg","ppcg","paro","ParO","rmm-davidson","rmm-paro"],"default":"david"},"diago_thr_init":{"type":"number","description":"Convergence threshold (ethr) for iterative diagonalization (the check is on eigenvalue convergence)."},"diago_cg_maxiter":{"type":"integer","description":"For conjugate gradient diagonalization: max number of iterations"},"diago_ppcg_maxiter":{"type":"integer","description":"For ppcg diagonalization: max number of iterations"},"diago_david_ndim":{"type":"integer","default":2,"description":"For Davidson diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed)."},"diago_rmm_ndim":{"type":"integer","default":4,"description":"For RMM-DIIS diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed)."},"diago_rmm_conv":{"type":"boolean","default":false,"description":"If .TRUE., RMM-DIIS is performed up to converge. If .FALSE., RMM-DIIS is performed only once."},"diago_gs_nblock":{"type":"integer","default":16,"description":"For RMM-DIIS diagonalization: blocking size of Gram-Schmidt orthogonalization"},"diago_full_acc":{"type":"boolean","default":false,"description":"If .TRUE. all the empty states are diagonalized at the same level of accuracy of the occupied ones. Otherwise the empty states are diagonalized using a larger threshold (this should not affect total energy, forces, and other ground-state properties)."},"efield":{"type":"number","description":"Amplitude of the finite electric field (in Ry a.u.; 1 a.u. = 36.3609*10^10 V/m). Used only if lelfield==.TRUE. and if k-points (K_POINTS card) are not automatic."},"efield_cart":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"efield_phase":{"type":"string","enum":["read","write","none"],"default":"none"},"startingpot":{"type":"string","enum":["atomic","file"]},"startingwfc":{"type":"string","enum":["atomic","atomic+random","random","file"],"default":"atomic+random"},"tqr":{"type":"boolean","default":false,"description":"If .true., use a real-space algorithm for augmentation charges of ultrasoft pseudopotentials and PAWsets. Faster but numerically less accurate than the default G-space algorithm. Use with care and after testing!"},"real_space":{"type":"boolean","default":false,"description":"If .true., exploit real-space localization to compute matrix elements for nonlocal projectors. Faster and in principle better scaling than the default G-space algorithm, but numerically less accurate, may lead to some loss of translational invariance. Use with care and after testing!"}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/hubbard","$schema":"http://json-schema.org/draft-07/schema#","title":"hubbard schema","type":"object","additionalProperties":false,"properties":{"card_option":{"type":"string","enum":["atomic","ortho-atomic","norm-atomic","wf","pseudo"]},"values":{"oneOf":[{"description":"IF DFT+U","type":"array","items":{"oneOf":[{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1764","additionalProperties":false,"properties":{"U":{"type":"string","enum":["U"],"description":"string constant \"U\"; indicates the specs for the U parameter will be given"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"u_val":{"type":"number","description":"value of the U parameter (in eV)"}}},{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1784","additionalProperties":false,"properties":{"J0":{"type":"string","enum":["J0"],"description":"string constant \"J0\"; indicates the specs for the J0 parameter will be given"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"j0_val":{"type":"number","description":"value of the J0 parameter (in eV)"}}}]}},{"description":"IF DFT+U+J","type":"array","items":{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1817","additionalProperties":false,"properties":{"paramType":{"type":"string","enum":["U","J","B","E2","E3"],"description":"character describing the type of Hubbard parameter allowed values: U, J and either B (for d-orbitals) or E2 and E3 (for f-orbitals)"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"paramValue":{"type":"number","description":"value of the J0 parameter (in eV)"}}}},{"description":"IF DFT+U+V","type":"array","items":{"oneOf":[{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1847","additionalProperties":false,"properties":{"U":{"type":"string","enum":["U"],"description":"string constant \"U\"; indicates the specs for the U parameter will be given"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"u_val":{"type":"number","description":"value of the U parameter (in eV)"}}},{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1865","additionalProperties":false,"properties":{"J0":{"type":"string","enum":["J0"],"description":"string constant \"J0\"; indicates the specs for the J0 parameter will be given"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"j0_val":{"type":"number","description":"value of the J0 parameter (in eV)"}}},{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1884","additionalProperties":false,"properties":{"V":{"type":"string","enum":["V"],"description":"string constant \"V\"; indicates the specs for the V parameter will be given"},"label(I)":{"type":"string","description":"label of the atom I (as defined in ATOMIC_SPECIES)"},"manifold(I)":{"type":"string","description":"specs of the manifold for atom I (e.g., 3d, 2p...)"},"label(J)":{"type":"string","description":"label of the atom J (as defined in ATOMIC_SPECIES)"},"manifold(J)":{"type":"string","description":"specs of the manifold for atom J (e.g., 3d, 2p...)"},"I":{"type":"integer","description":"index of the atom I"},"J":{"type":"integer","description":"index of the atom J"},"v_val(I,J)":{"type":"number","description":"value of the V parameter for the atom pair I,J (in eV)"}}}]}}]}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/ions","$schema":"http://json-schema.org/draft-07/schema#","title":"ions schema","type":"object","oneOf":[{"type":"object","additionalProperties":false,"properties":{"ion_dynamics":{"type":"string","enum":["bfgs","damp","fire"],"default":"bfgs","description":"CASE: calculation == 'relax'"}}},{"type":"object","additionalProperties":false,"properties":{"ion_dynamics":{"type":"string","enum":["verlet","langevin","langevin-smc"],"default":"verlet","description":"CASE: calculation == 'md'"}}},{"type":"object","additionalProperties":false,"properties":{"ion_dynamics":{"type":"string","enum":["bfgs","damp"],"default":"bfgs","description":"CASE: calculation == 'vc-relax'"}}},{"type":"object","additionalProperties":false,"properties":{"ion_dynamics":{"type":"string","enum":["beeman"],"default":"beeman","description":"CASE: calculation == 'vc-md'"}}}],"additionalProperties":false,"properties":{"ion_positions":{"type":"string","enum":["default","from_input"],"default":"default"},"ion_velocities":{"type":"string","enum":["default","from_input"],"default":"default"},"pot_extrapolation":{"type":"string","enum":["none","atomic","first_order","second_order"],"default":"atomic","description":"Used to extrapolate the potential from preceding ionic steps."},"wfc_extrapolation":{"type":"string","enum":["none","first_order","second_order"],"default":"none","description":"Used to extrapolate the wavefunctions from preceding ionic steps."},"remove_rigid_rot":{"type":"boolean","default":false,"description":"This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells."},"ion_temperature":{"type":"string","enum":["rescaling","rescale-v","rescale-T","reduce-T","berendsen","andersen","svr","initial","not_controlled"],"default":"not_controlled"},"tempw":{"type":"number","description":"Starting temperature (Kelvin) in MD runs target temperature for most thermostats.","default":300},"tolp":{"type":"number","description":"Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp.","default":100},"delta_t":{"type":"number","default":1},"nraise":{"type":"integer","default":1},"refold_pos":{"type":"boolean","default":false,"description":"This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell."},"upscale":{"type":"number","description":"Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale.","default":100},"bfgs_ndim":{"type":"integer","default":1,"description":"Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm."},"trust_radius_max":{"type":"number","description":"Maximum ionic displacement in the structural relaxation. (bfgs only)","default":0.8},"trust_radius_min":{"type":"number","description":"Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only)","default":0.001},"trust_radius_ini":{"type":"number","description":"Initial ionic displacement in the structural relaxation. (bfgs only)","default":0.5},"w_1":{"type":"number","default":0.01},"w_2":{"type":"number","description":"Parameters used in line search based on the Wolfe conditions. (bfgs only)","default":0.5},"fire_alpha_init":{"type":"number","description":"Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3","default":0.2},"fire_falpha":{"type":"number","description":"Scaling of the alpha mixing parameter for steps with P > 0;","default":0.99},"fire_nmin":{"type":"integer","default":5,"description":"Minimum number of steps with P > 0 before increase of dt"},"fire_f_inc":{"type":"number","description":"Factor for increasing dt","default":1.1},"fire_f_dec":{"type":"number","description":"Factor for decreasing dt","default":0.5},"fire_dtmax":{"type":"number","description":"Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt","default":10}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/k-points","$schema":"http://json-schema.org/draft-07/schema#","title":"k points schema","type":"object","additionalProperties":false,"properties":{"card_option":{"type":"string","enum":["tpiba","automatic","crystal","gamma","tpiba_b","crystal_b","tpiba_c","crystal_c"]},"values":{"oneOf":[{"type":"array","description":"K_POINTS tpiba | crystal | tpiba_b | crystal_b | tpiba_c | crystal_c","items":{"type":"object","additionalProperties":false,"properties":{"nks":{"type":"integer","description":"Number of supplied special k-points."},"xk_x":{"type":"number"},"xk_y":{"type":"number"},"xk_z":{"type":"number"},"wk":{"type":"number"}}}},{"type":"object","description":"K_POINTS automatic","additionalProperties":false,"properties":{"nk1":{"type":"integer","description":"Number of supplied special k-points."},"nk2":{"type":"integer","description":"Number of supplied special k-points."},"nk3":{"type":"integer","description":"Number of supplied special k-points."},"sk1":{"type":"integer","description":"Number of supplied special k-points."},"sk2":{"type":"integer","description":"Number of supplied special k-points."},"sk3":{"type":"integer","description":"Number of supplied special k-points."}}},{"type":"null","description":"K_POINTS gamma"}]}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/system","$schema":"http://json-schema.org/draft-07/schema#","title":"system schema","type":"object","anyOf":[{"properties":{"celldm":{"type":"array","minItems":6,"maxItems":6,"items":{"type":"number"}}}},{"properties":{"A":{"type":"number"},"B":{"type":"number"},"C":{"type":"number"},"cosAB":{"type":"number"},"cosAC":{"type":"number"},"cosBC":{"type":"number"}}}],"required":["ibrav","nat","ntyp","ecutwfc"],"additionalProperties":false,"properties":{"ibrav":{"type":"integer"},"nat":{"type":"integer","description":"number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms)"},"ntyp":{"type":"integer","description":"number of types of atoms in the unit cell"},"nbnd":{"type":"integer","description":"Default: for an insulator, nbnd = number of valence bands (nbnd = # of electrons /2); for a metal, 20% more (minimum 4 more)"},"nbnd_cond":{"type":"integer","description":"Default: nbnd_cond = nbnd - # of electrons / 2 in the collinear case; nbnd_cond = nbnd - # of electrons in the noncollinear case."},"tot_charge":{"type":"number","default":0},"starting_charge":{"type":"number","default":0,"description":"starting charge on atomic type 'i', to create starting potential with startingpot = 'atomic'."},"tot_magnetization":{"type":"number","default":-10000,"description":"Total majority spin charge - minority spin charge. Used to impose a specific total electronic magnetization. If unspecified then tot_magnetization variable is ignored and the amount of electronic magnetization is determined during the self-consistent cycle."},"starting_magnetization":{"type":"array","items":{"type":"number","default":0,"minimum":-1,"maximum":1}},"ecutwfc":{"type":"number","description":"kinetic energy cutoff (Ry) for wavefunctions"},"ecutrho":{"type":"number","description":"Kinetic energy cutoff (Ry) for charge density and potential For norm-conserving pseudopotential you should stick to the default value, you can reduce it by a little but it will introduce noise especially on forces and stress. Default: 4 * ecutwfc"},"ecutfock":{"type":"number","description":"Kinetic energy cutoff (Ry) for the exact exchange operator in EXX type calculations. By default this is the same as ecutrho but in some EXX calculations, a significant speed-up can be obtained by reducing ecutfock, at the expense of some loss in accuracy. Must be .gt. ecutwfc. Not implemented for stress calculation and for US-PP and PAW pseudopotentials."},"nr1":{"type":"integer","description":"Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)"},"nr2":{"type":"integer","description":"Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)"},"nr3":{"type":"integer","description":"Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)"},"nr1s":{"type":"integer","description":"Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )"},"nr2s":{"type":"integer","description":"Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )"},"nr3s":{"type":"integer","description":"Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )"},"nosym":{"type":"boolean","default":false},"nosym_evc":{"type":"boolean","default":false},"noinv":{"type":"boolean","default":false,"description":"if (.TRUE.) disable the usage of k => -k symmetry (time reversal) in k-point generation"},"no_t_rev":{"type":"boolean","default":false,"description":"if (.TRUE.) disable the usage of magnetic symmetry operations that consist in a rotation + time reversal."},"force_symmorphic":{"type":"boolean","default":false,"description":"if (.TRUE.) force the symmetry group to be symmorphic by disabling symmetry operations having an associated fractionary translation"},"use_all_frac":{"type":"boolean","default":false},"occupations":{"type":"string","enum":["smearing","tetrahedra","tetrahedra_lin","tetrahedra_opt","fixed","from_input"]},"one_atom_occupations":{"type":"boolean","default":false},"starting_spin_angle":{"type":"boolean","default":false},"degauss_cond":{"type":"number","default":0,"description":"value of the gaussian spreading (Ry) for brillouin-zone integration in the conduction manifold in a two-chemical potential calculation (twochem=.true.)."},"nelec_cond":{"type":"number","default":0,"description":"Number of electrons placed in the conduction manifold in a two-chemical potential calculation (twochem=.true.). Of the total # of electrons nelec, nelec-nelec_cond will occupy the valence manifold and nelec_cond will be constrained in the conduction manifold."},"degauss":{"type":"number","default":0,"description":"value of the gaussian spreading (Ry) for brillouin-zone integration in metals."},"smearing":{"type":"string","enum":["gaussian","gauss","methfessel-paxton","m-p","mp","marzari-vanderbilt","cold","m-v","mv","fermi-dirac","f-d","fd"],"default":"gaussian"},"nspin":{"type":"integer","default":1},"sic_gamma":{"type":"number","default":0,"description":"Strength of the gammaDFT potential."},"pol_type":{"type":"string","enum":["e","h"],"description":"Type of polaron in gammaDFT."},"sic_energy":{"type":"boolean","default":false,"description":"Enable the calculation of the total energy in gammaDFT. When .true., a preliminary calculation is performed to calculate the electron density in the absence of the polaron. When .false., the total energy printed in output should not be considered. For structural relaxations, it is recommended to use .false. to avoid doubling the computational cost."},"sci_vb":{"type":"number","default":0,"description":"Valence band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted."},"sci_cb":{"type":"number","default":0,"description":"Conduction band band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted."},"noncolin":{"type":"boolean","default":false,"description":"if .true. the program will perform a noncollinear calculation."},"ecfixed":{"type":"number","default":0},"qcutz":{"type":"number","default":0},"q2sigma":{"type":"number","default":0.1},"input_dft":{"type":"string","description":"Exchange-correlation functional: eg 'PBE', 'BLYP' etc See Modules/funct.f90 for allowed values. Overrides the value read from pseudopotential files. Use with care and if you know what you are doing!"},"ace":{"type":"boolean","default":true,"description":"Use Adaptively Compressed Exchange operator as in Lin Lin, J. Chem. Theory Comput. 2016, 12, 2242--2249, doi:10.1021/acs.jctc.6b00092"},"exx_fraction":{"type":"number","description":"Fraction of EXX for hybrid functional calculations. In the case of input_dft='PBE0', the default value is 0.25, while for input_dft='B3LYP' the exx_fraction default value is 0.20."},"screening_parameter":{"type":"number","default":0.106,"description":"screening_parameter for HSE like hybrid functionals."},"exxdiv_treatment":{"type":"string","default":"gygi-baldereschi","enum":["gygi-baldereschi","vcut_spherical","vcut_ws","none"]},"x_gamma_extrapolation":{"type":"boolean","default":true,"description":"Specific for EXX. If .true., extrapolate the G=0 term of the potential"},"ecutvcut":{"type":"number","description":"Reciprocal space cutoff for correcting Coulomb potential divergencies at small q vectors."},"nqx1":{"type":"integer","default":0,"description":"Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points."},"nqx2":{"type":"integer","description":"Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points."},"nqx3":{"type":"integer","description":"Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points."},"localization_thr":{"type":"number","default":0,"description":"Overlap threshold over which the exchange integral over a pair of localized orbitals is included in the evaluation of EXX operator. Any value greater than 0.0 triggers the SCDM localization and the evaluation on EXX using the localized orbitals. Very small value of the threshold should yield the same result as the default EXX evaluation"},"Hubbard_occ":{"type":"array","items":{"type":"array","minItems":3,"maxItems":3,"items":[{"type":"integer","minimum":1},{"type":"integer","minimum":1,"maximum":3},{"type":"number"}]}},"Hubbard_alpha":{"type":"array","items":{"type":"number","default":0}},"Hubbard_beta":{"type":"array","items":{"type":"number","default":0}},"starting_ns_eigenvalue":{"type":"array","items":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"dmft":{"type":"boolean","default":false,"description":"If true, nscf calculation will exit in restart mode, scf calculation will restart from there if DMFT updates are provided as hdf5 archive. Scf calculation should be used only with electron_maxstep = 1."},"dmft_prefix":{"type":"string","description":"prepended to hdf5 archive: dmft_prefix.h5"},"ensemble_energies":{"type":"boolean","default":false,"description":"If ensemble_energies = .true., an ensemble of xc energies is calculated non-selfconsistently for perturbed exchange-enhancement factors and LDA vs. PBE correlation ratios after each converged electronic ground state calculation."},"edir":{"type":"integer","description":"The direction of the electric field or dipole correction is parallel to the bg(:,edir) reciprocal lattice vector, so the potential is constant in planes defined by FFT grid points; edir = 1, 2 or 3. Used only if tefield is .TRUE."},"emaxpos":{"type":"number","default":0.5,"description":"Position of the maximum of the saw-like potential along crystal axis edir, within the unit cell (see below), 0 < emaxpos < 1 Used only if tefield is .TRUE."},"eopreg":{"type":"number","default":0.1,"description":"Zone in the unit cell where the saw-like potential decreases. ( see below, 0 < eopreg < 1 ). Used only if tefield is .TRUE."},"eamp":{"type":"number","default":0.001},"angle1":{"type":"array","maxItems":1,"minItems":1,"description":"The angle expressed in degrees between the initial magnetization and the z-axis. For noncollinear calculations only; index i runs over the atom types.","items":{"type":"number"}},"angle2":{"type":"array","maxItems":1,"minItems":1,"description":"The angle expressed in degrees between the projection of the initial magnetization on x-y plane and the x-axis. For noncollinear calculations only.","items":{"type":"number"}},"lforcet":{"type":"boolean","description":"When starting a non collinear calculation using an existing density file from a collinear lsda calculation assumes previous density points in z direction and rotates it in the direction described by angle1 and angle2 variables for atomic type 1"},"constrained_magnetization":{"type":"string","enum":["none","total","atomic","total direction","atomic direction"],"default":"none","description":"Used to perform constrained calculations in magnetic systems."},"fixed_magnetization":{"type":"array","maxItems":3,"minItems":3,"items":{"type":"number","default":0}},"lambda":{"type":"number","default":1,"description":"parameter used for constrained_magnetization calculations N.B.: if the scf calculation does not converge, try to reduce lambda to obtain convergence, then restart the run with a larger lambda"},"report":{"type":"integer","default":-1,"description":"determines when atomic magnetic moments are printed on output"},"lspinorb":{"type":"boolean","description":"if .TRUE. the noncollinear code can use a pseudopotential with spin-orbit."},"assume_isolated":{"type":"string","enum":["none","makov-payne","m-p","mp","martyna-tuckerman","m-t","mt","esm","2D"],"default":"none","description":"Used to perform calculation assuming the system to be isolated (a molecule or a cluster in a 3D supercell)"},"esm_bc":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"esm_w":{"type":"number","default":0,"description":"If assume_isolated = 'esm', determines the position offset [in a.u.] of the start of the effective screening region, measured relative to the cell edge. (ESM region begins at z = +/- [L_z/2 + esm_w] )."},"esm_efield":{"type":"number","default":0,"description":"If assume_isolated = 'esm' and esm_bc = 'bc2', gives the magnitude of the electric field [Ry/a.u.] to be applied between semi-infinite ESM electrodes."},"esm_nfit":{"type":"integer","default":4,"description":"If assume_isolated = 'esm', gives the number of z-grid points for the polynomial fit along the cell edge."},"lgcscf":{"type":"boolean","default":false,"description":"If .TRUE. perform a constant bias potential (constant-mu) calculation with Grand-Canonical SCF."},"gcscf_mu":{"type":"number","description":"The target Fermi energy (eV) of GC-SCF. One can start with appropriate total charge of the system by giving tot_charge"},"gcscf_conv_thr":{"type":"number","default":0.01,"description":"Convergence threshold of Fermi energy (eV) for GC-SCF."},"gcscf_beta":{"type":"number","default":0.05,"description":"Mixing factor for GC-SCF. Larger values are recommended, if systems with small DOS on Fermi surface as graphite."},"vdw_corr":{"type":"string","enum":["none","grimme-d2","Grimme-D2","DFT-D","dft-d","grimme-d3","Grimme-D3","DFT-D3","dft-d3","TS","ts","ts-vdw","ts-vdW","tkatchenko-scheffler","MBD","mbd","many-body-dispersion","mbd_vdw","XDM","xdm"],"default":"none","description":"Type of Van der Waals correction"},"london":{"type":"boolean","default":false,"description":"OBSOLESCENT, same as vdw_corr='DFT-D'"},"london_s6":{"type":"number","default":0.75,"description":"global scaling parameter for DFT-D. Default is good for PBE."},"london_c6":{"type":"number","description":"atomic C6 coefficient of each atom type"},"london_rvdw":{"type":"number","description":"atomic vdw radii of each atom type"},"london_rcut":{"type":"number","default":200,"description":"cutoff radius (a.u.) for dispersion interactions"},"dftd3_version":{"type":"integer","default":3,"minimum":2,"maximum":6,"description":"Version of Grimme implementation of Grimme-D3"},"dftd3_threebody":{"type":"boolean","default":true,"description":"Turn three-body terms in Grimme-D3 on. If .false. two-body contributions only are computed, using two-body parameters of Grimme-D3. If dftd3_version=2, three-body contribution is always disabled."},"ts_vdw_econv_thr":{"type":"number","default":0.000001,"description":"Optional: controls the convergence of the vdW energy (and forces). The default value is a safe choice, likely too safe, but you do not gain much in increasing it"},"ts_vdw_isolated":{"type":"boolean","default":false,"description":"Optional: set it to .TRUE. when computing the Tkatchenko-Scheffler vdW energy or the Many-Body dispersion (MBD) energy for an isolated (non-periodic) system."},"xdm":{"type":"boolean","default":false,"description":"OBSOLESCENT, same as vdw_corr='xdm'"},"xdm_a1":{"type":"number","default":0.6836,"description":"Damping function parameter a1 (adimensional)"},"xdm_a2":{"type":"number","default":1.5045,"description":"Damping function parameter a2 (angstrom)"},"space_group":{"type":"integer","default":0,"description":"The number of the space group of the crystal, as given in the International Tables of Crystallography A (ITA)"},"uniqueb":{"type":"boolean","default":false,"description":"Used only for monoclinic lattices"},"origin_choice":{"type":"integer","default":1,"description":"Used only for space groups that in the ITA allow the use of two different origins"},"rhombohedral":{"type":"boolean","default":true,"description":"Used only for rhombohedral space groups."},"zgate":{"type":"number","default":0.5,"description":"used only if gate = .TRUE."},"relaxz":{"type":"boolean","default":false,"description":"used only if gate = .TRUE."},"block":{"type":"boolean","default":false,"description":"used only if gate = .TRUE."},"block_1":{"type":"number","default":0.45,"description":"used only if gate = .TRUE. and block = .TRUE."},"block_2":{"type":"number","default":0.55,"description":"used only if gate = .TRUE. and block = .TRUE."},"block_height":{"type":"number","default":0.1,"description":"used only if gate = .TRUE. and block = .TRUE."},"nextffield":{"type":"integer","default":0,"description":"Number of activated external ionic force fields."}}},{"$id":"apse/file/applications/espresso/7.2/pw.x","$schema":"http://json-schema.org/draft-07/schema#","title":"pwx main schema","type":"object","additionalProperties":false,"properties":{"&CONTROL":{"$schema":"http://json-schema.org/draft-07/schema#","title":"control schema","type":"object","additionalProperties":false,"properties":{"calculation":{"description":"A string describing the task to be performed","type":"string","enum":["scf","nscf","bands","relax","md","vc-relax","vc-md"],"default":"scf"},"title":{"description":"reprinted on output.","type":"string","default":""},"verbosity":{"description":"Currently two verbosity levels are implemented: high, low. 'debug' and 'medium' have the same effect as 'high'; 'default' and 'minimal' as 'low'","type":"string","enum":["high","low","debug","medium","minimal","default"],"default":"low"},"restart_mode":{"type":"string","enum":["from_scratch","restart"],"default":"from_scratch"},"wf_collect":{"type":"boolean","description":"OBSOLETE - NO LONGER IMPLEMENTED"},"nstep":{"description":"Default: 1 if calculation == 'scf', 'nscf', 'bands'; 50 for the other cases; Number of molecular-dynamics or structural optimization steps performed in this run. If set to 0, the code performs a quick \"dry run\", stopping just after initialization. This is useful to check for input correctness and to have the summary printed. NOTE: in MD calculations, the code will perform \"nstep\" steps even if restarting from a previously interrupted calculation.","type":"number","default":1},"iprint":{"description":"band energies are written every iprint iterations","type":"number"},"tstress":{"type":"boolean","default":false,"description":"calculate stress. It is set to .TRUE. automatically if calculation == 'vc-md' or 'vc-relax'"},"tprnfor":{"type":"boolean","description":"calculate forces. It is set to .TRUE. automatically if calculation == 'relax','md','vc-md'"},"dt":{"type":"number","description":"time step for molecular dynamics, in Rydberg atomic units (1 a.u.=4.8378 * 10^-17 s : beware, the CP code uses Hartree atomic units, half that much!!!)","default":20},"outdir":{"type":"string","description":"input, temporary, output files are found in this directory, see also wfcdir"},"wfcdir":{"type":"string","description":"This directory specifies where to store files generated by each processor (*.wfc{N}, *.igk{N}, etc.). Useful for machines without a parallel file system: set wfcdir to a local file system, while outdir should be a parallel or network file system, visible to all processors. Beware: in order to restart from interrupted runs, or to perform further calculations using the produced data files, you may need to copy files to outdir. Works only for pw.x."},"prefix":{"type":"string","description":"prepended to input/output filenames: prefix.wfc, prefix.rho, etc.","default":"pwscf"},"lkpoint_dir":{"type":"boolean","description":"OBSOLETE - NO LONGER IMPLEMENTED"},"max_seconds":{"type":"number","default":10000000,"description":"Jobs stops after max_seconds CPU time. Use this option in conjunction with option restart_mode if you need to split a job too long to complete into shorter jobs that fit into your batch queues."},"etot_conv_thr":{"type":"number","default":0.0001,"description":"Convergence threshold on total energy (a.u) for ionic minimization: the convergence criterion is satisfied when the total energy changes less than etot_conv_thr between two consecutive scf steps. Note that etot_conv_thr is extensive, like the total energy. See also forc_conv_thr - both criteria must be satisfied"},"forc_conv_thr":{"type":"number","default":0.001,"description":"Convergence threshold on forces (a.u) for ionic minimization: the convergence criterion is satisfied when all components of all forces are smaller than forc_conv_thr. See also etot_conv_thr - both criteria must be satisfied"},"disk_io":{"type":"string","enum":["high","medium","low","nowf","none"],"description":"Specifies the amount of disk I/O activity: (only for binary files and xml data file in data directory; other files printed at each molecular dynamics / structural optimization step are not controlled by this option )"},"pseudo_dir":{"type":"string","description":"directory containing pseudopotential files. Default: value of the $ESPRESSO_PSEUDO environment variable if set; '$HOME/espresso/pseudo/' otherwise"},"tefield":{"type":"boolean","default":false,"description":"If .TRUE. a saw-like potential simulating an electric field is added to the bare ionic potential. See variables edir, eamp, emaxpos, eopreg for the form and size of the added potential."},"dipfield":{"type":"boolean","default":false,"description":"If .TRUE. and tefield==.TRUE. a dipole correction is also added to the bare ionic potential - implements the recipe of L. Bengtsson, PRB 59, 12301 (1999). See variables edir, emaxpos, eopreg for the form of the correction. Must be used ONLY in a slab geometry, for surface calculations, with the discontinuity FALLING IN THE EMPTY SPACE."},"lelfield":{"type":"boolean","default":false,"description":"If .TRUE. a homogeneous finite electric field described through the modern theory of the polarization is applied. This is different from tefield == .true. !"},"nberrycyc":{"type":"integer","default":1,"description":"In the case of a finite electric field ( lelfield == .TRUE. ) it defines the number of iterations for converging the wavefunctions in the electric field Hamiltonian, for each external iteration on the charge density"},"lorbm":{"type":"boolean","default":false,"description":"If .TRUE. perform orbital magnetization calculation."},"lberry":{"type":"boolean","default":false,"description":"If .TRUE. perform a Berry phase calculation. See the header of PW/src/bp_c_phase.f90 for documentation"},"gdir":{"type":"number","description":"For Berry phase calculation: direction of the k-point strings in reciprocal space. Allowed values: 1, 2, 3 1=first, 2=second, 3=third reciprocal lattice vector For calculations with finite electric fields (lelfield==.true.) \"gdir\" is the direction of the field."},"nppstr":{"type":"number","description":"For Berry phase calculation: number of k-points to be calculated along each symmetry-reduced string. The same for calculation with finite electric fields (lelfield==.true.)."},"gate":{"type":"boolean","default":false,"description":"In the case of charged cells (tot_charge .ne. 0) setting gate = .TRUE. represents the counter charge (i.e. -tot_charge) not by a homogeneous background charge but with a charged plate, which is placed at zgate (see below). Details of the gate potential can be found in T. Brumme, M. Calandra, F. Mauri; PRB 89, 245406 (2014). Note, that in systems which are not symmetric with respect to the plate, one needs to enable the dipole correction! (dipfield=.true.). Currently, symmetry can be used with gate=.true. but carefully check that no symmetry is included which maps z to -z even if in principle one could still use them for symmetric systems (i.e. no dipole correction). For nosym=.false. verbosity is set to 'high'. Note: this option was called \"monopole\" in v6.0 and 6.1 of pw.x"},"twochem":{"type":"boolean","default":false,"description":"IF .TRUE. , a two chemical potential calculation for the simulation of photoexcited systems is performed, constraining a fraction of the electrons in the conduction manifold."},"lfcp":{"type":"boolean","default":false,"description":"If .TRUE. perform a constant bias potential (constant-mu) calculation for a system with ESM method. See the header of PW/src/fcp_module.f90 for documentation. To perform the calculation, you must set a namelist FCP."},"trism":{"type":"boolean","default":false,"description":"If .TRUE. perform a 3D-RISM-SCF calculation [for details see H.Sato et al., JCP 112, 9463 (2000), doi:10.1063/1.481564]. The solvent's distributions are calculated by 3D-RISM, though solute is treated as SCF. The charge density and the atomic positions are optimized, simultaneously with the solvents. To perform the calculation, you must set a namelist RISM and a card SOLVENTS. If assume_isolated = 'esm' and esm_bc = 'bc1', Laue-RISM is calculated instead of 3D-RISM and coupled with ESM method (i.e. ESM-RISM). [for details see S.Nishihara and M.Otani, PRB 96, 115429 (2017)]. The default of mixing_beta is 0.2 for both 3D-RISM and Laue-RISM. For structural relaxation with BFGS, ignore_wolfe is always .TRUE. ."}}},"&SYSTEM":{"$schema":"http://json-schema.org/draft-07/schema#","title":"system schema","type":"object","anyOf":[{"properties":{"celldm":{"type":"array","minItems":6,"maxItems":6,"items":{"type":"number"}}}},{"properties":{"A":{"type":"number"},"B":{"type":"number"},"C":{"type":"number"},"cosAB":{"type":"number"},"cosAC":{"type":"number"},"cosBC":{"type":"number"}}}],"required":["ibrav","nat","ntyp","ecutwfc"],"additionalProperties":false,"properties":{"ibrav":{"type":"integer"},"nat":{"type":"integer","description":"number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms)"},"ntyp":{"type":"integer","description":"number of types of atoms in the unit cell"},"nbnd":{"type":"integer","description":"Default: for an insulator, nbnd = number of valence bands (nbnd = # of electrons /2); for a metal, 20% more (minimum 4 more)"},"nbnd_cond":{"type":"integer","description":"Default: nbnd_cond = nbnd - # of electrons / 2 in the collinear case; nbnd_cond = nbnd - # of electrons in the noncollinear case."},"tot_charge":{"type":"number","default":0},"starting_charge":{"type":"number","default":0,"description":"starting charge on atomic type 'i', to create starting potential with startingpot = 'atomic'."},"tot_magnetization":{"type":"number","default":-10000,"description":"Total majority spin charge - minority spin charge. Used to impose a specific total electronic magnetization. If unspecified then tot_magnetization variable is ignored and the amount of electronic magnetization is determined during the self-consistent cycle."},"starting_magnetization":{"type":"array","items":{"type":"number","default":0,"minimum":-1,"maximum":1}},"ecutwfc":{"type":"number","description":"kinetic energy cutoff (Ry) for wavefunctions"},"ecutrho":{"type":"number","description":"Kinetic energy cutoff (Ry) for charge density and potential For norm-conserving pseudopotential you should stick to the default value, you can reduce it by a little but it will introduce noise especially on forces and stress. Default: 4 * ecutwfc"},"ecutfock":{"type":"number","description":"Kinetic energy cutoff (Ry) for the exact exchange operator in EXX type calculations. By default this is the same as ecutrho but in some EXX calculations, a significant speed-up can be obtained by reducing ecutfock, at the expense of some loss in accuracy. Must be .gt. ecutwfc. Not implemented for stress calculation and for US-PP and PAW pseudopotentials."},"nr1":{"type":"integer","description":"Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)"},"nr2":{"type":"integer","description":"Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)"},"nr3":{"type":"integer","description":"Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)"},"nr1s":{"type":"integer","description":"Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )"},"nr2s":{"type":"integer","description":"Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )"},"nr3s":{"type":"integer","description":"Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )"},"nosym":{"type":"boolean","default":false},"nosym_evc":{"type":"boolean","default":false},"noinv":{"type":"boolean","default":false,"description":"if (.TRUE.) disable the usage of k => -k symmetry (time reversal) in k-point generation"},"no_t_rev":{"type":"boolean","default":false,"description":"if (.TRUE.) disable the usage of magnetic symmetry operations that consist in a rotation + time reversal."},"force_symmorphic":{"type":"boolean","default":false,"description":"if (.TRUE.) force the symmetry group to be symmorphic by disabling symmetry operations having an associated fractionary translation"},"use_all_frac":{"type":"boolean","default":false},"occupations":{"type":"string","enum":["smearing","tetrahedra","tetrahedra_lin","tetrahedra_opt","fixed","from_input"]},"one_atom_occupations":{"type":"boolean","default":false},"starting_spin_angle":{"type":"boolean","default":false},"degauss_cond":{"type":"number","default":0,"description":"value of the gaussian spreading (Ry) for brillouin-zone integration in the conduction manifold in a two-chemical potential calculation (twochem=.true.)."},"nelec_cond":{"type":"number","default":0,"description":"Number of electrons placed in the conduction manifold in a two-chemical potential calculation (twochem=.true.). Of the total # of electrons nelec, nelec-nelec_cond will occupy the valence manifold and nelec_cond will be constrained in the conduction manifold."},"degauss":{"type":"number","default":0,"description":"value of the gaussian spreading (Ry) for brillouin-zone integration in metals."},"smearing":{"type":"string","enum":["gaussian","gauss","methfessel-paxton","m-p","mp","marzari-vanderbilt","cold","m-v","mv","fermi-dirac","f-d","fd"],"default":"gaussian"},"nspin":{"type":"integer","default":1},"sic_gamma":{"type":"number","default":0,"description":"Strength of the gammaDFT potential."},"pol_type":{"type":"string","enum":["e","h"],"description":"Type of polaron in gammaDFT."},"sic_energy":{"type":"boolean","default":false,"description":"Enable the calculation of the total energy in gammaDFT. When .true., a preliminary calculation is performed to calculate the electron density in the absence of the polaron. When .false., the total energy printed in output should not be considered. For structural relaxations, it is recommended to use .false. to avoid doubling the computational cost."},"sci_vb":{"type":"number","default":0,"description":"Valence band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted."},"sci_cb":{"type":"number","default":0,"description":"Conduction band band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted."},"noncolin":{"type":"boolean","default":false,"description":"if .true. the program will perform a noncollinear calculation."},"ecfixed":{"type":"number","default":0},"qcutz":{"type":"number","default":0},"q2sigma":{"type":"number","default":0.1},"input_dft":{"type":"string","description":"Exchange-correlation functional: eg 'PBE', 'BLYP' etc See Modules/funct.f90 for allowed values. Overrides the value read from pseudopotential files. Use with care and if you know what you are doing!"},"ace":{"type":"boolean","default":true,"description":"Use Adaptively Compressed Exchange operator as in Lin Lin, J. Chem. Theory Comput. 2016, 12, 2242--2249, doi:10.1021/acs.jctc.6b00092"},"exx_fraction":{"type":"number","description":"Fraction of EXX for hybrid functional calculations. In the case of input_dft='PBE0', the default value is 0.25, while for input_dft='B3LYP' the exx_fraction default value is 0.20."},"screening_parameter":{"type":"number","default":0.106,"description":"screening_parameter for HSE like hybrid functionals."},"exxdiv_treatment":{"type":"string","default":"gygi-baldereschi","enum":["gygi-baldereschi","vcut_spherical","vcut_ws","none"]},"x_gamma_extrapolation":{"type":"boolean","default":true,"description":"Specific for EXX. If .true., extrapolate the G=0 term of the potential"},"ecutvcut":{"type":"number","description":"Reciprocal space cutoff for correcting Coulomb potential divergencies at small q vectors."},"nqx1":{"type":"integer","default":0,"description":"Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points."},"nqx2":{"type":"integer","description":"Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points."},"nqx3":{"type":"integer","description":"Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points."},"localization_thr":{"type":"number","default":0,"description":"Overlap threshold over which the exchange integral over a pair of localized orbitals is included in the evaluation of EXX operator. Any value greater than 0.0 triggers the SCDM localization and the evaluation on EXX using the localized orbitals. Very small value of the threshold should yield the same result as the default EXX evaluation"},"Hubbard_occ":{"type":"array","items":{"type":"array","minItems":3,"maxItems":3,"items":[{"type":"integer","minimum":1},{"type":"integer","minimum":1,"maximum":3},{"type":"number"}]}},"Hubbard_alpha":{"type":"array","items":{"type":"number","default":0}},"Hubbard_beta":{"type":"array","items":{"type":"number","default":0}},"starting_ns_eigenvalue":{"type":"array","items":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"dmft":{"type":"boolean","default":false,"description":"If true, nscf calculation will exit in restart mode, scf calculation will restart from there if DMFT updates are provided as hdf5 archive. Scf calculation should be used only with electron_maxstep = 1."},"dmft_prefix":{"type":"string","description":"prepended to hdf5 archive: dmft_prefix.h5"},"ensemble_energies":{"type":"boolean","default":false,"description":"If ensemble_energies = .true., an ensemble of xc energies is calculated non-selfconsistently for perturbed exchange-enhancement factors and LDA vs. PBE correlation ratios after each converged electronic ground state calculation."},"edir":{"type":"integer","description":"The direction of the electric field or dipole correction is parallel to the bg(:,edir) reciprocal lattice vector, so the potential is constant in planes defined by FFT grid points; edir = 1, 2 or 3. Used only if tefield is .TRUE."},"emaxpos":{"type":"number","default":0.5,"description":"Position of the maximum of the saw-like potential along crystal axis edir, within the unit cell (see below), 0 < emaxpos < 1 Used only if tefield is .TRUE."},"eopreg":{"type":"number","default":0.1,"description":"Zone in the unit cell where the saw-like potential decreases. ( see below, 0 < eopreg < 1 ). Used only if tefield is .TRUE."},"eamp":{"type":"number","default":0.001},"angle1":{"type":"array","maxItems":1,"minItems":1,"description":"The angle expressed in degrees between the initial magnetization and the z-axis. For noncollinear calculations only; index i runs over the atom types.","items":{"type":"number"}},"angle2":{"type":"array","maxItems":1,"minItems":1,"description":"The angle expressed in degrees between the projection of the initial magnetization on x-y plane and the x-axis. For noncollinear calculations only.","items":{"type":"number"}},"lforcet":{"type":"boolean","description":"When starting a non collinear calculation using an existing density file from a collinear lsda calculation assumes previous density points in z direction and rotates it in the direction described by angle1 and angle2 variables for atomic type 1"},"constrained_magnetization":{"type":"string","enum":["none","total","atomic","total direction","atomic direction"],"default":"none","description":"Used to perform constrained calculations in magnetic systems."},"fixed_magnetization":{"type":"array","maxItems":3,"minItems":3,"items":{"type":"number","default":0}},"lambda":{"type":"number","default":1,"description":"parameter used for constrained_magnetization calculations N.B.: if the scf calculation does not converge, try to reduce lambda to obtain convergence, then restart the run with a larger lambda"},"report":{"type":"integer","default":-1,"description":"determines when atomic magnetic moments are printed on output"},"lspinorb":{"type":"boolean","description":"if .TRUE. the noncollinear code can use a pseudopotential with spin-orbit."},"assume_isolated":{"type":"string","enum":["none","makov-payne","m-p","mp","martyna-tuckerman","m-t","mt","esm","2D"],"default":"none","description":"Used to perform calculation assuming the system to be isolated (a molecule or a cluster in a 3D supercell)"},"esm_bc":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"esm_w":{"type":"number","default":0,"description":"If assume_isolated = 'esm', determines the position offset [in a.u.] of the start of the effective screening region, measured relative to the cell edge. (ESM region begins at z = +/- [L_z/2 + esm_w] )."},"esm_efield":{"type":"number","default":0,"description":"If assume_isolated = 'esm' and esm_bc = 'bc2', gives the magnitude of the electric field [Ry/a.u.] to be applied between semi-infinite ESM electrodes."},"esm_nfit":{"type":"integer","default":4,"description":"If assume_isolated = 'esm', gives the number of z-grid points for the polynomial fit along the cell edge."},"lgcscf":{"type":"boolean","default":false,"description":"If .TRUE. perform a constant bias potential (constant-mu) calculation with Grand-Canonical SCF."},"gcscf_mu":{"type":"number","description":"The target Fermi energy (eV) of GC-SCF. One can start with appropriate total charge of the system by giving tot_charge"},"gcscf_conv_thr":{"type":"number","default":0.01,"description":"Convergence threshold of Fermi energy (eV) for GC-SCF."},"gcscf_beta":{"type":"number","default":0.05,"description":"Mixing factor for GC-SCF. Larger values are recommended, if systems with small DOS on Fermi surface as graphite."},"vdw_corr":{"type":"string","enum":["none","grimme-d2","Grimme-D2","DFT-D","dft-d","grimme-d3","Grimme-D3","DFT-D3","dft-d3","TS","ts","ts-vdw","ts-vdW","tkatchenko-scheffler","MBD","mbd","many-body-dispersion","mbd_vdw","XDM","xdm"],"default":"none","description":"Type of Van der Waals correction"},"london":{"type":"boolean","default":false,"description":"OBSOLESCENT, same as vdw_corr='DFT-D'"},"london_s6":{"type":"number","default":0.75,"description":"global scaling parameter for DFT-D. Default is good for PBE."},"london_c6":{"type":"number","description":"atomic C6 coefficient of each atom type"},"london_rvdw":{"type":"number","description":"atomic vdw radii of each atom type"},"london_rcut":{"type":"number","default":200,"description":"cutoff radius (a.u.) for dispersion interactions"},"dftd3_version":{"type":"integer","default":3,"minimum":2,"maximum":6,"description":"Version of Grimme implementation of Grimme-D3"},"dftd3_threebody":{"type":"boolean","default":true,"description":"Turn three-body terms in Grimme-D3 on. If .false. two-body contributions only are computed, using two-body parameters of Grimme-D3. If dftd3_version=2, three-body contribution is always disabled."},"ts_vdw_econv_thr":{"type":"number","default":0.000001,"description":"Optional: controls the convergence of the vdW energy (and forces). The default value is a safe choice, likely too safe, but you do not gain much in increasing it"},"ts_vdw_isolated":{"type":"boolean","default":false,"description":"Optional: set it to .TRUE. when computing the Tkatchenko-Scheffler vdW energy or the Many-Body dispersion (MBD) energy for an isolated (non-periodic) system."},"xdm":{"type":"boolean","default":false,"description":"OBSOLESCENT, same as vdw_corr='xdm'"},"xdm_a1":{"type":"number","default":0.6836,"description":"Damping function parameter a1 (adimensional)"},"xdm_a2":{"type":"number","default":1.5045,"description":"Damping function parameter a2 (angstrom)"},"space_group":{"type":"integer","default":0,"description":"The number of the space group of the crystal, as given in the International Tables of Crystallography A (ITA)"},"uniqueb":{"type":"boolean","default":false,"description":"Used only for monoclinic lattices"},"origin_choice":{"type":"integer","default":1,"description":"Used only for space groups that in the ITA allow the use of two different origins"},"rhombohedral":{"type":"boolean","default":true,"description":"Used only for rhombohedral space groups."},"zgate":{"type":"number","default":0.5,"description":"used only if gate = .TRUE."},"relaxz":{"type":"boolean","default":false,"description":"used only if gate = .TRUE."},"block":{"type":"boolean","default":false,"description":"used only if gate = .TRUE."},"block_1":{"type":"number","default":0.45,"description":"used only if gate = .TRUE. and block = .TRUE."},"block_2":{"type":"number","default":0.55,"description":"used only if gate = .TRUE. and block = .TRUE."},"block_height":{"type":"number","default":0.1,"description":"used only if gate = .TRUE. and block = .TRUE."},"nextffield":{"type":"integer","default":0,"description":"Number of activated external ionic force fields."}}},"&ELECTRONS":{"$schema":"http://json-schema.org/draft-07/schema#","title":"electrons schema","type":"object","additionalProperties":false,"properties":{"electron_maxstep":{"type":"integer","default":100,"description":"maximum number of iterations in a scf step. If exact exchange is active, this will affect the inner loops."},"exx_maxstep":{"type":"integer","default":100,"description":"maximum number of outer iterations in a scf calculation with exact exchange."},"scf_must_converge":{"type":"boolean","default":true,"description":"If .false. do not stop molecular dynamics or ionic relaxation when electron_maxstep is reached. Use with care."},"conv_thr":{"type":"number"},"adaptive_thr":{"type":"boolean","default":false,"description":"If .TRUE. this turns on the use of an adaptive conv_thr for the inner scf loops when using EXX."},"conv_thr_init":{"type":"number","description":"When adaptive_thr = .TRUE. this is the convergence threshold used for the first scf cycle."},"conv_thr_multi":{"type":"number","description":"When adaptive_thr = .TRUE. the convergence threshold for each scf cycle is given by: max( conv_thr, conv_thr_multi * dexx )"},"mixing_mode":{"type":"string","enum":["plain","TF","local-TF"],"default":"plain"},"mixing_beta":{"type":"number","description":"mixing factor for self-consistency"},"mixing_ndim":{"type":"integer","default":8,"description":"number of iterations used in mixing scheme"},"mixing_fixed_ns":{"type":"integer","default":0,"description":"For DFT+U : number of iterations with fixed ns ( ns is the atomic density appearing in the Hubbard term )."},"diagonalization":{"type":"string","enum":["david","cg","ppcg","paro","ParO","rmm-davidson","rmm-paro"],"default":"david"},"diago_thr_init":{"type":"number","description":"Convergence threshold (ethr) for iterative diagonalization (the check is on eigenvalue convergence)."},"diago_cg_maxiter":{"type":"integer","description":"For conjugate gradient diagonalization: max number of iterations"},"diago_ppcg_maxiter":{"type":"integer","description":"For ppcg diagonalization: max number of iterations"},"diago_david_ndim":{"type":"integer","default":2,"description":"For Davidson diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed)."},"diago_rmm_ndim":{"type":"integer","default":4,"description":"For RMM-DIIS diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed)."},"diago_rmm_conv":{"type":"boolean","default":false,"description":"If .TRUE., RMM-DIIS is performed up to converge. If .FALSE., RMM-DIIS is performed only once."},"diago_gs_nblock":{"type":"integer","default":16,"description":"For RMM-DIIS diagonalization: blocking size of Gram-Schmidt orthogonalization"},"diago_full_acc":{"type":"boolean","default":false,"description":"If .TRUE. all the empty states are diagonalized at the same level of accuracy of the occupied ones. Otherwise the empty states are diagonalized using a larger threshold (this should not affect total energy, forces, and other ground-state properties)."},"efield":{"type":"number","description":"Amplitude of the finite electric field (in Ry a.u.; 1 a.u. = 36.3609*10^10 V/m). Used only if lelfield==.TRUE. and if k-points (K_POINTS card) are not automatic."},"efield_cart":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"efield_phase":{"type":"string","enum":["read","write","none"],"default":"none"},"startingpot":{"type":"string","enum":["atomic","file"]},"startingwfc":{"type":"string","enum":["atomic","atomic+random","random","file"],"default":"atomic+random"},"tqr":{"type":"boolean","default":false,"description":"If .true., use a real-space algorithm for augmentation charges of ultrasoft pseudopotentials and PAWsets. Faster but numerically less accurate than the default G-space algorithm. Use with care and after testing!"},"real_space":{"type":"boolean","default":false,"description":"If .true., exploit real-space localization to compute matrix elements for nonlocal projectors. Faster and in principle better scaling than the default G-space algorithm, but numerically less accurate, may lead to some loss of translational invariance. Use with care and after testing!"}}},"&IONS":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"ions schema","type":"object","additionalProperties":false,"oneOf":[{"type":"object","additionalProperties":false,"properties":{"ion_dynamics":{"type":"string","enum":["bfgs","damp","fire"],"default":"bfgs","description":"CASE: calculation == 'relax'"}}},{"type":"object","additionalProperties":false,"properties":{"ion_dynamics":{"type":"string","enum":["verlet","langevin","langevin-smc"],"default":"verlet","description":"CASE: calculation == 'md'"}}},{"type":"object","additionalProperties":false,"properties":{"ion_dynamics":{"type":"string","enum":["bfgs","damp"],"default":"bfgs","description":"CASE: calculation == 'vc-relax'"}}},{"type":"object","additionalProperties":false,"properties":{"ion_dynamics":{"type":"string","enum":["beeman"],"default":"beeman","description":"CASE: calculation == 'vc-md'"}}}],"properties":{"ion_positions":{"type":"string","enum":["default","from_input"],"default":"default"},"ion_velocities":{"type":"string","enum":["default","from_input"],"default":"default"},"pot_extrapolation":{"type":"string","enum":["none","atomic","first_order","second_order"],"default":"atomic","description":"Used to extrapolate the potential from preceding ionic steps."},"wfc_extrapolation":{"type":"string","enum":["none","first_order","second_order"],"default":"none","description":"Used to extrapolate the wavefunctions from preceding ionic steps."},"remove_rigid_rot":{"type":"boolean","default":false,"description":"This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells."},"ion_temperature":{"type":"string","enum":["rescaling","rescale-v","rescale-T","reduce-T","berendsen","andersen","svr","initial","not_controlled"],"default":"not_controlled"},"tempw":{"type":"number","description":"Starting temperature (Kelvin) in MD runs target temperature for most thermostats.","default":300},"tolp":{"type":"number","description":"Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp.","default":100},"delta_t":{"type":"number","default":1},"nraise":{"type":"integer","default":1},"refold_pos":{"type":"boolean","default":false,"description":"This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell."},"upscale":{"type":"number","description":"Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale.","default":100},"bfgs_ndim":{"type":"integer","default":1,"description":"Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm."},"trust_radius_max":{"type":"number","description":"Maximum ionic displacement in the structural relaxation. (bfgs only)","default":0.8},"trust_radius_min":{"type":"number","description":"Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only)","default":0.001},"trust_radius_ini":{"type":"number","description":"Initial ionic displacement in the structural relaxation. (bfgs only)","default":0.5},"w_1":{"type":"number","default":0.01},"w_2":{"type":"number","description":"Parameters used in line search based on the Wolfe conditions. (bfgs only)","default":0.5},"fire_alpha_init":{"type":"number","description":"Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3","default":0.2},"fire_falpha":{"type":"number","description":"Scaling of the alpha mixing parameter for steps with P > 0;","default":0.99},"fire_nmin":{"type":"integer","default":5,"description":"Minimum number of steps with P > 0 before increase of dt"},"fire_f_inc":{"type":"number","description":"Factor for increasing dt","default":1.1},"fire_f_dec":{"type":"number","description":"Factor for decreasing dt","default":0.5},"fire_dtmax":{"type":"number","description":"Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt","default":10}}},{"type":"null"}]},"&CELL":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"cell schema","type":"object","additionalProperties":false,"oneOf":[{"type":"object","additionalProperties":false,"properties":{"cell_dynamics":{"type":"string","enum":["none","sd","damp-pr","damp-w","bfgs"],"default":"bfgs","description":"CASE ( calculation == 'vc-relax' )"}}},{"type":"object","additionalProperties":false,"properties":{"cell_dynamics":{"type":"string","enum":["none","pr","w"],"description":"CASE ( calculation == 'vc-md' )"}}}],"properties":{"press":{"type":"number","description":"Target pressure [KBar] in a variable-cell md or relaxation run.","default":0},"wmass":{"type":"number","description":"Fictitious cell mass [amu] for variable-cell simulations (both 'vc-md' and 'vc-relax'). Default: 0.75*Tot_Mass/pi**2 for Parrinello-Rahman MD; 0.75*Tot_Mass/pi**2/Omega**(2/3) for Wentzcovitch MD"},"cell_factor":{"type":"number","description":"Used in the construction of the pseudopotential tables. It should exceed the maximum linear contraction of the cell during a simulation. Default: 2.0 for variable-cell calculations, 1.0 otherwise"},"press_conv_thr":{"type":"number","default":0.5,"description":"Convergence threshold on the pressure for variable cell relaxation ('vc-relax' : note that the other convergence thresholds for ionic relaxation apply as well)."},"cell_dofree":{"type":"string","enum":["all","ibrav","a","b","c","fixa","fixb","fixc","x","y","xy","xz","xyz","shape","volume","2Dxy","2Dshape","epitaxial_ab","epitaxial_ac","epitaxial_bc"],"default":"all","description":"Select which of the cell parameters should be moved"}}},{"type":"null"}]},"ATOMIC_SPECIES":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic species schema","type":"object","additionalProperties":false,"properties":{"values":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"Mass_X":{"type":"number","description":"mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"},"PseudoPot_X":{"type":"string","description":"PseudoPot_X"}}}}}},"ATOMIC_POSITIONS":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic positions schema","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1493","type":"object","additionalProperties":false,"properties":{"card_option":{"type":"string","enum":["alat","bohr","angstrom","crystal","crystal_sg"],"default":"alat"},"values":{"type":"array","items":{"type":"object","required":["x","y","z"],"additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom as specified in ATOMIC_SPECIES"},"x":{"type":"number","description":"atomic positions"},"y":{"type":"number","description":"atomic positions"},"z":{"type":"number","description":"atomic positions"},"if_pos(1)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(2)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(3)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1}}}}}},"K_POINTS":{"$schema":"http://json-schema.org/draft-07/schema#","title":"k points schema","type":"object","additionalProperties":false,"properties":{"card_option":{"type":"string","enum":["tpiba","automatic","crystal","gamma","tpiba_b","crystal_b","tpiba_c","crystal_c"]},"values":{"oneOf":[{"type":"array","description":"K_POINTS tpiba | crystal | tpiba_b | crystal_b | tpiba_c | crystal_c","items":{"type":"object","additionalProperties":false,"properties":{"nks":{"type":"integer","description":"Number of supplied special k-points."},"xk_x":{"type":"number"},"xk_y":{"type":"number"},"xk_z":{"type":"number"},"wk":{"type":"number"}}}},{"type":"object","description":"K_POINTS automatic","additionalProperties":false,"properties":{"nk1":{"type":"integer","description":"Number of supplied special k-points."},"nk2":{"type":"integer","description":"Number of supplied special k-points."},"nk3":{"type":"integer","description":"Number of supplied special k-points."},"sk1":{"type":"integer","description":"Number of supplied special k-points."},"sk2":{"type":"integer","description":"Number of supplied special k-points."},"sk3":{"type":"integer","description":"Number of supplied special k-points."}}},{"type":"null","description":"K_POINTS gamma"}]}}},"CELL_PARAMETERS":{"$schema":"http://json-schema.org/draft-07/schema#","title":"cell parameters schema","type":"object","additionalProperties":false,"properties":{"card_option":{"type":"string","enum":["alat","bohr","angstrom"],"description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"values":{"type":"object","additionalProperties":false,"properties":{"v1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}}},"HUBBARD":{"$schema":"http://json-schema.org/draft-07/schema#","title":"hubbard schema","type":"object","additionalProperties":false,"properties":{"card_option":{"type":"string","enum":["atomic","ortho-atomic","norm-atomic","wf","pseudo"]},"values":{"oneOf":[{"description":"IF DFT+U","type":"array","items":{"oneOf":[{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1764","additionalProperties":false,"properties":{"U":{"type":"string","enum":["U"],"description":"string constant \"U\"; indicates the specs for the U parameter will be given"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"u_val":{"type":"number","description":"value of the U parameter (in eV)"}}},{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1784","additionalProperties":false,"properties":{"J0":{"type":"string","enum":["J0"],"description":"string constant \"J0\"; indicates the specs for the J0 parameter will be given"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"j0_val":{"type":"number","description":"value of the J0 parameter (in eV)"}}}]}},{"description":"IF DFT+U+J","type":"array","items":{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1817","additionalProperties":false,"properties":{"paramType":{"type":"string","enum":["U","J","B","E2","E3"],"description":"character describing the type of Hubbard parameter allowed values: U, J and either B (for d-orbitals) or E2 and E3 (for f-orbitals)"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"paramValue":{"type":"number","description":"value of the J0 parameter (in eV)"}}}},{"description":"IF DFT+U+V","type":"array","items":{"oneOf":[{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1847","additionalProperties":false,"properties":{"U":{"type":"string","enum":["U"],"description":"string constant \"U\"; indicates the specs for the U parameter will be given"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"u_val":{"type":"number","description":"value of the U parameter (in eV)"}}},{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1865","additionalProperties":false,"properties":{"J0":{"type":"string","enum":["J0"],"description":"string constant \"J0\"; indicates the specs for the J0 parameter will be given"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"j0_val":{"type":"number","description":"value of the J0 parameter (in eV)"}}},{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1884","additionalProperties":false,"properties":{"V":{"type":"string","enum":["V"],"description":"string constant \"V\"; indicates the specs for the V parameter will be given"},"label(I)":{"type":"string","description":"label of the atom I (as defined in ATOMIC_SPECIES)"},"manifold(I)":{"type":"string","description":"specs of the manifold for atom I (e.g., 3d, 2p...)"},"label(J)":{"type":"string","description":"label of the atom J (as defined in ATOMIC_SPECIES)"},"manifold(J)":{"type":"string","description":"specs of the manifold for atom J (e.g., 3d, 2p...)"},"I":{"type":"integer","description":"index of the atom I"},"J":{"type":"integer","description":"index of the atom J"},"v_val(I,J)":{"type":"number","description":"value of the V parameter for the atom pair I,J (in eV)"}}}]}}]}}}}},{"$id":"apse/materials/builders/slab/pymatgen/parameters","$schema":"http://json-schema.org/draft-07/schema#","title":"Pymatgen Slab Generator Parameters Schema","description":"Parameters for the Pymatgen slab generator. https://github.com/materialsproject/pymatgen/blob/585bb673c4aa222669c4b0d72ffeec3dbf092630/pymatgen/core/surface.py#L1187","type":"object","properties":{"min_vacuum_size":{"description":"Minimum size of the vacuum in layers or angstroms","type":["integer","number"],"minimum":0,"default":0},"in_unit_planes":{"description":"Whether to use unit planes for the vacuum and slab size","type":"boolean","default":true},"reorient_lattice":{"description":"Whether to reorient the lattice to have c vector along the z-axis","type":"boolean","default":true},"symmetrize":{"description":"Whether to symmetrize the slab","type":"boolean","default":true}}},{"$id":"context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"context provider schema","type":"object","required":["name"],"additionalProperties":true,"properties":{"name":{"type":"string","enum":["PlanewaveCutoffDataManager","KGridFormDataManager","QGridFormDataManager","IGridFormDataManager","QPathFormDataManager","IPathFormDataManager","KPathFormDataManager","ExplicitKPathFormDataManager","ExplicitKPath2PIBAFormDataManager","HubbardJContextManager","HubbardUContextManager","HubbardVContextManager","HubbardContextManagerLegacy","NEBFormDataManager","BoundaryConditionsFormDataManager","MLSettingsDataManager","MLTrainTestSplitDataManager","IonDynamicsContextProvider","CollinearMagnetizationDataManager","NonCollinearMagnetizationDataManager","QEPWXInputDataManager","QENEBInputDataManager","VASPInputDataManager","VASPNEBInputDataManager","NWChemInputDataManager"],"tsEnumNames":["PlanewaveCutoffDataManager","KGridFormDataManager","QGridFormDataManager","IGridFormDataManager","QPathFormDataManager","IPathFormDataManager","KPathFormDataManager","ExplicitKPathFormDataManager","ExplicitKPath2PIBAFormDataManager","HubbardJContextManager","HubbardUContextManager","HubbardVContextManager","HubbardContextManagerLegacy","NEBFormDataManager","BoundaryConditionsFormDataManager","MLSettingsDataManager","MLTrainTestSplitDataManager","IonDynamicsContextProvider","CollinearMagnetizationDataManager","NonCollinearMagnetizationDataManager","QEPWXInputDataManager","QENEBInputDataManager","VASPInputDataManager","VASPNEBInputDataManager","NWChemInputDataManager"]},"domain":{"description":"domain of the context provider","type":"string"},"entityName":{"description":"entity name associated with the context provider","type":"string"},"data":{"description":"data object for the context provider","type":"object"},"extraData":{"description":"additional data object for the context provider","type":"object"},"isEdited":{"description":"flag indicating if the context provider has been edited","type":"boolean"},"context":{"description":"context object for the context provider","type":"object"}}},{"$id":"context-providers-directory/boundary-conditions-data-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Boundary Conditions Data Provider Schema","type":"object","properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"},"electricField":{"type":"number","title":"Electric Field (eV/A)"},"targetFermiEnergy":{"type":"number","title":"Target Fermi Energy (eV)"}}},{"$id":"context-providers-directory/by-application/nwchem-total-energy-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"NWChem Total Energy Context Provider Schema","description":"Schema for NWChemTotalEnergyContextProvider that generates context data for NWChem total energy input.","type":"object","required":["CHARGE","MULT","BASIS","NAT","NTYP","ATOMIC_POSITIONS","ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS","ATOMIC_SPECIES","FUNCTIONAL","CARTESIAN"],"properties":{"CHARGE":{"type":"integer","description":"Total charge of the system."},"MULT":{"type":"integer","description":"Spin multiplicity of the system."},"BASIS":{"type":"string","description":"Basis set label used in the calculation (e.g., '6-31G')."},"NAT":{"type":"integer","description":"Number of atoms in the system."},"NTYP":{"type":"integer","description":"Number of unique atomic species in the system."},"ATOMIC_POSITIONS":{"type":"string","description":"Formatted text block with atomic positions including constraints."},"ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS":{"type":"string","description":"Formatted text block with atomic positions without constraints."},"ATOMIC_SPECIES":{"type":"string","description":"Formatted text block for atomic species, including element symbols and masses."},"FUNCTIONAL":{"type":"string","description":"Exchange-correlation functional identifier (e.g., 'B3LYP')."},"CARTESIAN":{"type":"boolean","description":"Whether atomic positions are expressed in cartesian coordinates."}}},{"$id":"context-providers-directory/by-application/qe-neb-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"QE NEB Context Provider Schema","description":"Schema for QENEBContextProvider that generates context data for Quantum ESPRESSO pw.x NEB input. Extends the pw.x context with image-specific atomic positions.","type":"object","required":["IBRAV","RESTART_MODE","ATOMIC_SPECIES","ATOMIC_SPECIES_WITH_LABELS","NAT","NTYP","NTYP_WITH_LABELS","CELL_PARAMETERS","FIRST_IMAGE","LAST_IMAGE","INTERMEDIATE_IMAGES"],"properties":{"IBRAV":{"type":"integer"},"RESTART_MODE":{"type":"string","enum":["from_scratch","restart"],"default":"from_scratch"},"ATOMIC_SPECIES":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"Mass_X":{"type":"number","description":"mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"},"PseudoPot_X":{"type":"string","description":"PseudoPot_X"}}}},"ATOMIC_SPECIES_WITH_LABELS":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"Mass_X":{"type":"number","description":"mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"},"PseudoPot_X":{"type":"string","description":"PseudoPot_X"}}}},"NAT":{"type":"integer","description":"number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms)"},"NTYP":{"type":"integer","description":"number of types of atoms in the unit cell"},"NTYP_WITH_LABELS":{"type":"integer","description":"Number of different atomic species including labels","minimum":1},"ATOMIC_POSITIONS":{"type":"array","items":{"type":"object","required":["x","y","z"],"additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom as specified in ATOMIC_SPECIES"},"x":{"type":"number","description":"atomic positions"},"y":{"type":"number","description":"atomic positions"},"z":{"type":"number","description":"atomic positions"},"if_pos(1)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(2)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(3)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1}}}},"ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS":{"type":"string","description":"Formatted text block for ATOMIC_POSITIONS card WITHOUT constraints. Format: 'X x y z' per line"},"CELL_PARAMETERS":{"type":"object","additionalProperties":false,"properties":{"v1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},"FIRST_IMAGE":{"type":"string","description":"Atomic positions block (ATOMIC_POSITIONS) for the first NEB image."},"LAST_IMAGE":{"type":"string","description":"Atomic positions block (ATOMIC_POSITIONS) for the last NEB image."},"INTERMEDIATE_IMAGES":{"type":"array","description":"Atomic positions blocks (ATOMIC_POSITIONS) for all intermediate NEB images.","items":{"type":"string"}}}},{"$id":"context-providers-directory/by-application/qe-pwx-base-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"QE pwx Base Context Provider Schema","description":"Base schema with shared Quantum ESPRESSO pw.x context provider properties.","type":"object","properties":{"IBRAV":{"type":"integer"},"RESTART_MODE":{"type":"string","enum":["from_scratch","restart"],"default":"from_scratch"},"ATOMIC_SPECIES":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"Mass_X":{"type":"number","description":"mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"},"PseudoPot_X":{"type":"string","description":"PseudoPot_X"}}}},"ATOMIC_SPECIES_WITH_LABELS":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"Mass_X":{"type":"number","description":"mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"},"PseudoPot_X":{"type":"string","description":"PseudoPot_X"}}}},"NAT":{"type":"integer","description":"number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms)"},"NTYP":{"type":"integer","description":"number of types of atoms in the unit cell"},"NTYP_WITH_LABELS":{"type":"integer","description":"Number of different atomic species including labels","minimum":1},"ATOMIC_POSITIONS":{"type":"array","items":{"type":"object","required":["x","y","z"],"additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom as specified in ATOMIC_SPECIES"},"x":{"type":"number","description":"atomic positions"},"y":{"type":"number","description":"atomic positions"},"z":{"type":"number","description":"atomic positions"},"if_pos(1)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(2)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(3)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1}}}},"ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS":{"type":"string","description":"Formatted text block for ATOMIC_POSITIONS card WITHOUT constraints. Format: 'X x y z' per line"},"CELL_PARAMETERS":{"type":"object","additionalProperties":false,"properties":{"v1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}}},{"$id":"context-providers-directory/by-application/qe-pwx-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"QE pwx Context Provider Schema","description":"Schema for QEPWXContextProvider that generates context data for Quantum ESPRESSO pw.x input files. Contains computed context properties and string-formatted versions of pw.x input sections.","type":"object","required":["IBRAV","RESTART_MODE","ATOMIC_SPECIES","ATOMIC_SPECIES_WITH_LABELS","NAT","NTYP","NTYP_WITH_LABELS","ATOMIC_POSITIONS","ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS","CELL_PARAMETERS"],"properties":{"IBRAV":{"type":"integer"},"RESTART_MODE":{"type":"string","enum":["from_scratch","restart"],"default":"from_scratch"},"ATOMIC_SPECIES":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"Mass_X":{"type":"number","description":"mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"},"PseudoPot_X":{"type":"string","description":"PseudoPot_X"}}}},"ATOMIC_SPECIES_WITH_LABELS":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"Mass_X":{"type":"number","description":"mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"},"PseudoPot_X":{"type":"string","description":"PseudoPot_X"}}}},"NAT":{"type":"integer","description":"number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms)"},"NTYP":{"type":"integer","description":"number of types of atoms in the unit cell"},"NTYP_WITH_LABELS":{"type":"integer","description":"Number of different atomic species including labels","minimum":1},"ATOMIC_POSITIONS":{"type":"array","items":{"type":"object","required":["x","y","z"],"additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom as specified in ATOMIC_SPECIES"},"x":{"type":"number","description":"atomic positions"},"y":{"type":"number","description":"atomic positions"},"z":{"type":"number","description":"atomic positions"},"if_pos(1)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(2)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(3)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1}}}},"ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS":{"type":"string","description":"Formatted text block for ATOMIC_POSITIONS card WITHOUT constraints. Format: 'X x y z' per line"},"CELL_PARAMETERS":{"type":"object","additionalProperties":false,"properties":{"v1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}}},{"$id":"context-providers-directory/by-application/vasp-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"VASP Context Provider Schema","description":"Schema for VASPContextProvider that generates context data for VASP POSCAR input files.","type":"object","required":["POSCAR","POSCAR_WITH_CONSTRAINTS"],"properties":{"POSCAR":{"type":"string","description":"POSCAR content for VASP including lattice, atom types, positions and constraints."},"POSCAR_WITH_CONSTRAINTS":{"type":"string","description":"POSCAR content for VASP including lattice, atom types, positions and constraints. May differ in how constraints are represented."}}},{"$id":"context-providers-directory/by-application/vasp-neb-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"VASP NEB Context Provider Schema","description":"Schema for VASPNEBContextProvider that generates context data for VASP NEB (nudged elastic band) runs.","type":"object","required":["FIRST_IMAGE","LAST_IMAGE","INTERMEDIATE_IMAGES"],"properties":{"FIRST_IMAGE":{"type":"string","description":"POSCAR content with constraints for the first NEB image."},"LAST_IMAGE":{"type":"string","description":"POSCAR content with constraints for the last NEB image."},"INTERMEDIATE_IMAGES":{"type":"array","description":"POSCAR contents with constraints for all intermediate NEB images.","items":{"type":"string"}}}},{"$id":"context-providers-directory/collinear-magnetization-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Collinear Magnetization Context Provider Schema","description":"Set starting magnetization, can have values in the range [-1, +1].","type":"object","properties":{"startingMagnetization":{"type":"array","items":{"type":"object","properties":{"atomicSpecies":{"type":"string","title":"Atomic species"},"value":{"type":"number","title":"Starting magnetization","minimum":-1,"maximum":1}}}},"isTotalMagnetization":{"type":"boolean","title":"Set total magnetization instead"},"totalMagnetization":{"type":"number","title":"Total magnetization"}}},{"$id":"context-providers-directory/enum","definitions":{"ContextProviderNameEnum":{"type":"string","enum":["PlanewaveCutoffDataManager","KGridFormDataManager","QGridFormDataManager","IGridFormDataManager","QPathFormDataManager","IPathFormDataManager","KPathFormDataManager","ExplicitKPathFormDataManager","ExplicitKPath2PIBAFormDataManager","HubbardJContextManager","HubbardUContextManager","HubbardVContextManager","HubbardContextManagerLegacy","NEBFormDataManager","BoundaryConditionsFormDataManager","MLSettingsDataManager","MLTrainTestSplitDataManager","IonDynamicsContextProvider","CollinearMagnetizationDataManager","NonCollinearMagnetizationDataManager","QEPWXInputDataManager","QENEBInputDataManager","VASPInputDataManager","VASPNEBInputDataManager","NWChemInputDataManager"],"tsEnumNames":["PlanewaveCutoffDataManager","KGridFormDataManager","QGridFormDataManager","IGridFormDataManager","QPathFormDataManager","IPathFormDataManager","KPathFormDataManager","ExplicitKPathFormDataManager","ExplicitKPath2PIBAFormDataManager","HubbardJContextManager","HubbardUContextManager","HubbardVContextManager","HubbardContextManagerLegacy","NEBFormDataManager","BoundaryConditionsFormDataManager","MLSettingsDataManager","MLTrainTestSplitDataManager","IonDynamicsContextProvider","CollinearMagnetizationDataManager","NonCollinearMagnetizationDataManager","QEPWXInputDataManager","QENEBInputDataManager","VASPInputDataManager","VASPNEBInputDataManager","NWChemInputDataManager"]}}},{"$id":"context-providers-directory/hubbard-j-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard J Context Provider Schema","description":"Hubbard parameters for DFT+U+J calculation.","type":"array","minItems":1,"items":{"type":"object","properties":{"paramType":{"type":"string","title":"Species","enum":["U","J","B","E2","E3"]},"atomicSpecies":{"type":"string","title":"Species"},"atomicOrbital":{"type":"string","title":"Orbital"},"value":{"type":"number","title":"Value (eV)"}}}},{"$id":"context-providers-directory/hubbard-legacy-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard Legacy Context Provider Schema","description":"Hubbard parameters for DFT+U calculation.","type":"array","uniqueItems":true,"minItems":1,"items":{"type":"object","properties":{"atomicSpecies":{"type":"string","title":"Atomic species"},"atomicSpeciesIndex":{"type":"integer","title":"Species index"},"hubbardUValue":{"type":"number","title":"Hubbard U (eV)"}}}},{"$id":"context-providers-directory/hubbard-u-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard U Context Provider Schema","description":"Hubbard U parameters for DFT+U or DFT+U+V calculation.","type":"array","items":{"type":"object","properties":{"atomicSpecies":{"type":"string","title":"Atomic species"},"atomicOrbital":{"type":"string","title":"Atomic orbital"},"hubbardUValue":{"type":"number","title":"Hubbard U (eV)"}}}},{"$id":"context-providers-directory/hubbard-v-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard V Context Provider Schema","description":"Hubbard V parameters for DFT+U+V calculation.","type":"array","minItems":1,"items":{"type":"object","properties":{"atomicSpecies":{"type":"string","title":"Species 1"},"siteIndex":{"type":"integer","title":"Site no 1"},"atomicOrbital":{"type":"string","title":"Orbital 1"},"atomicSpecies2":{"type":"string","title":"Species 2"},"siteIndex2":{"type":"integer","title":"Site no 2"},"atomicOrbital2":{"type":"string","title":"Orbital 2"},"hubbardVValue":{"type":"number","title":"V (eV)"}}}},{"$id":"context-providers-directory/ion-dynamics-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Ion Dynamics Context Provider Schema","description":"Important parameters for molecular dynamics calculation","type":"object","properties":{"numberOfSteps":{"type":"integer","title":"numberOfSteps"},"timeStep":{"type":"number","title":"timeStep (Hartree a.u.)"},"electronMass":{"type":"number","title":"Effective electron mass"},"temperature":{"type":"number","title":"Ionic temperature (K)"}}},{"$id":"context-providers-directory/ml-settings-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"ML Settings Context Provider Schema","description":"Settings important to machine learning runs.","type":"object","properties":{"target_column_name":{"type":"string"},"problem_category":{"type":"string","enum":["regression","classification","clustering"]}}},{"$id":"context-providers-directory/ml-train-test-split-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"ML Train Test Split Context Provider Schema","description":"Fraction held as the test set. For example, a value of 0.2 corresponds to an 80/20 train/test split.","type":"object","properties":{"fraction_held_as_test_set":{"type":"number","minimum":0,"maximum":1}}},{"$id":"context-providers-directory/neb-data-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"NEB Data Provider Schema","description":"Number of intermediate NEB images.","type":"object","properties":{"nImages":{"type":"number"}}},{"$id":"context-providers-directory/non-collinear-magnetization-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Non Collinear Magnetization Context Provider Schema","description":"Non-collinear magnetization parameters including starting magnetization, spin angles, and constraints.","type":"object","properties":{"isExistingChargeDensity":{"type":"boolean","title":"Use existing charge density"},"isStartingMagnetization":{"type":"boolean","title":"Set starting magnetization"},"startingMagnetization":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","title":"Index"},"atomicSpecies":{"type":"string","title":"Atomic species"},"value":{"type":"number","title":"Starting magnetization"}}}},"isArbitrarySpinAngle":{"type":"boolean","title":"Set arbitrary spin angle"},"spinAngles":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","title":"Index"},"atomicSpecies":{"type":"string","title":"Atomic species"},"angle1":{"type":"number","title":"Angle1 (deg)"},"angle2":{"type":"number","title":"Angle2 (deg)"}}}},"isConstrainedMagnetization":{"type":"boolean","title":"Set constrained magnetization"},"constrainedMagnetization":{"type":"object","properties":{"constrainType":{"type":"string","title":"Constrain type","enum":["none","total","atomic","total direction","atomic direction"]},"lambda":{"type":"number","title":"lambda"}}},"isFixedMagnetization":{"type":"boolean","title":"Set Fixed magnetization (only applicable to constrained magnetization of 'total' type)"},"fixedMagnetization":{"type":"object","properties":{"x":{"type":"number","title":"X-component"},"y":{"type":"number","title":"Y-component"},"z":{"type":"number","title":"Z-component"}}}}},{"$id":"context-providers-directory/planewave-cutoffs-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Planewave Cutoffs Context Provider Schema","description":"Planewave cutoff parameters for electronic wavefunctions and density. Units are specific to simulation engine.","type":"object","properties":{"wavefunction":{"type":"number"},"density":{"type":"number"}}},{"$id":"context-providers-directory/points-grid-data-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Points Grid Data Provider Schema","description":"3D grid with shifts for k-point or q-point sampling.","type":"object","properties":{"dimensions":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"shifts":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"reciprocalVectorRatios":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"gridMetricType":{"type":"string","enum":["KPPRA","spacing"]},"gridMetricValue":{"type":"number"},"preferGridMetric":{"type":"boolean"}}},{"$id":"context-providers-directory/points-path-data-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Points Path Data Provider Schema","description":"Path in reciprocal space for band structure calculations.","type":"array","minItems":1,"items":{"type":"object","properties":{"point":{"type":"string"},"steps":{"type":"integer"}}}},{"$id":"core/abstract/2d-data","$schema":"http://json-schema.org/draft-07/schema#","title":"2 dimension data schema","type":"object","required":["xDataArray","yDataSeries"],"properties":{"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"core/abstract/2d-plot","$schema":"http://json-schema.org/draft-07/schema#","title":"2 dimension plot schema","type":"object","required":["xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","type":"object","required":["label"],"properties":{"label":{"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},"yAxis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","type":"object","required":["label"],"properties":{"label":{"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"core/abstract/3d-grid","$schema":"http://json-schema.org/draft-07/schema#","title":"3 dimensional grid schema","type":"object","required":["dimensions","shifts"],"properties":{"dimensions":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"shifts":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$id":"core/abstract/coordinate-2d","$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 2d schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},{"$id":"core/abstract/coordinate-3d","$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},{"$id":"core/abstract/matrix-3x3","$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},{"$id":"core/abstract/vector-2d","$schema":"http://json-schema.org/draft-07/schema#","title":"vector 2d schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},{"$id":"core/abstract/vector-3d","$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},{"$id":"core/abstract/vector-boolean-3d","$schema":"http://json-schema.org/draft-07/schema#","title":"vector boolean 3d schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 boolean elements schema","type":"array","items":{"type":"boolean"},"minItems":3,"maxItems":3}]},{"$id":"core/primitive/1d-data-series","$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}},{"$id":"core/primitive/array-of-2-numbers","$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},{"$id":"core/primitive/array-of-3-booleans","$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 boolean elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}},{"$id":"core/primitive/array-of-3-integers","$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 integer elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},{"$id":"core/primitive/array-of-3-numbers","$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},{"$id":"core/primitive/array-of-ids","$schema":"http://json-schema.org/draft-07/schema#","title":"array of ids","description":"array of objects containing integer id each","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","type":"object","required":["id"],"properties":{"id":{"description":"integer id of this entry","type":"integer"}}}},{"$id":"core/primitive/array-of-strings","$schema":"http://json-schema.org/draft-07/schema#","title":"array of strings","description":"array of strings, e.g. metadata tags","type":"array","items":{"type":"string","uniqueItems":true}},{"$id":"core/primitive/axis","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","type":"object","required":["label"],"properties":{"label":{"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},{"$id":"core/primitive/axis-3d-names-enum","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},{"$id":"core/primitive/group-info","$schema":"http://json-schema.org/draft-07/schema#","title":"Group info schema for nodes in a graph","type":"object","properties":{"groupName":{"description":"Human-readable name of group of nodes","type":"string"},"groupId":{"description":"Unique identifier of the group a node belongs to","type":"string"}}},{"$id":"core/primitive/integer-one-or-zero","$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},{"$id":"core/primitive/integer-positive-single-digit","$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9},{"$id":"core/primitive/linked-list/base-node","$schema":"http://json-schema.org/draft-07/schema#","title":"basic node schema (linked list)","type":"object","definitions":{"flowchart-id":{"required":["flowchartId"],"properties":{"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}},"required":["flowchartId"],"properties":{"next":{"description":"Flowchart ID of next node","type":"string"},"head":{"description":"Whether node is head node or not","type":"boolean"},"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}},{"$id":"core/primitive/linked-list/named-node","$schema":"http://json-schema.org/draft-07/schema#","title":"Named node schema","type":"object","definitions":{"flowchart-id":{"required":["flowchartId"],"properties":{"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}},"required":["flowchartId"],"properties":{"next":{"description":"Flowchart ID of next node","type":"string"},"head":{"description":"Whether node is head node or not","type":"boolean"},"flowchartId":{"description":"Unique flowchart ID of node","type":"string"},"name":{"description":"entity name","type":"string"}}},{"$id":"core/primitive/linked-list/named-node-in-group","$schema":"http://json-schema.org/draft-07/schema#","title":"Named node in group schema","type":"object","definitions":{"flowchart-id":{"required":["flowchartId"],"properties":{"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}},"required":["flowchartId"],"properties":{"next":{"description":"Flowchart ID of next node","type":"string"},"head":{"description":"Whether node is head node or not","type":"boolean"},"flowchartId":{"description":"Unique flowchart ID of node","type":"string"},"name":{"description":"entity name","type":"string"},"groupName":{"description":"Human-readable name of group of nodes","type":"string"},"groupId":{"description":"Unique identifier of the group a node belongs to","type":"string"}}},{"$id":"core/primitive/linked-list/node-with-type","$schema":"http://json-schema.org/draft-07/schema#","title":"Typed node schema","type":"object","definitions":{"flowchart-id":{"required":["flowchartId"],"properties":{"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}},"required":["flowchartId"],"properties":{"type":{"type":"string"},"next":{"description":"Flowchart ID of next node","type":"string"},"head":{"description":"Whether node is head node or not","type":"boolean"},"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}},{"$id":"core/primitive/linked-list","$schema":"http://json-schema.org/draft-07/schema#","title":"linked list schema","type":"array","items":{"type":"object","anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"basic node schema (linked list)","type":"object","definitions":{"flowchart-id":{"required":["flowchartId"],"properties":{"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}},"required":["flowchartId"],"properties":{"next":{"description":"Flowchart ID of next node","type":"string"},"head":{"description":"Whether node is head node or not","type":"boolean"},"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Named node schema","type":"object","definitions":{"flowchart-id":{"required":["flowchartId"],"properties":{"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}},"required":["flowchartId"],"properties":{"next":{"description":"Flowchart ID of next node","type":"string"},"head":{"description":"Whether node is head node or not","type":"boolean"},"flowchartId":{"description":"Unique flowchart ID of node","type":"string"},"name":{"description":"entity name","type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Named node in group schema","type":"object","definitions":{"flowchart-id":{"required":["flowchartId"],"properties":{"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}},"required":["flowchartId"],"properties":{"next":{"description":"Flowchart ID of next node","type":"string"},"head":{"description":"Whether node is head node or not","type":"boolean"},"flowchartId":{"description":"Unique flowchart ID of node","type":"string"},"name":{"description":"entity name","type":"string"},"groupName":{"description":"Human-readable name of group of nodes","type":"string"},"groupId":{"description":"Unique identifier of the group a node belongs to","type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Typed node schema","type":"object","definitions":{"flowchart-id":{"required":["flowchartId"],"properties":{"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}},"required":["flowchartId"],"properties":{"type":{"type":"string"},"next":{"description":"Flowchart ID of next node","type":"string"},"head":{"description":"Whether node is head node or not","type":"boolean"},"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}],"uniqueItems":true}},{"$id":"core/primitive/object-with-id","$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","type":"object","required":["id"],"properties":{"id":{"description":"integer id of this entry","type":"integer"}}},{"$id":"core/primitive/object-with-id-and-value","$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}},{"$id":"core/primitive/scalar","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","type":"object","required":["value"],"properties":{"value":{"type":"number"}}},{"$id":"core/primitive/slugified-entry","$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","required":["name","slug"],"properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}}},{"$id":"core/primitive/slugified-entry-or-slug","$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},{"$id":"core/primitive/string","$schema":"http://json-schema.org/draft-07/schema#","title":"PrimitiveString","type":"object","required":["value"],"properties":{"value":{"type":"string"}}},{"$id":"core/reference/exabyte","$schema":"http://json-schema.org/draft-07/schema#","type":"object","required":["jobId","unitId"],"properties":{"jobId":{"description":"Job's identity","type":"string"},"unitId":{"description":"Id of the unit that extracted the result","type":"string"}}},{"$id":"core/reference/experiment/condition","$schema":"http://json-schema.org/draft-07/schema#","title":"condition schema","type":"object","required":["name"],"properties":{"units":{"description":"condition unit","type":"string"},"scalar":{"description":"array of condition values","type":"array","items":{"type":"object","properties":{"value":{"type":"string"}}}},"name":{"description":"human-readable name of the condition","type":"string"}}},{"$id":"core/reference/experiment/location","$schema":"http://json-schema.org/draft-07/schema#","title":"location schema","type":"object","required":["latitude","longitude"],"properties":{"latitude":{"description":"location latitude","type":"number"},"longitude":{"description":"location longitude","type":"number"}}},{"$id":"core/reference/experiment","$schema":"http://json-schema.org/draft-07/schema#","title":"info for characteristic obtained by experiment","type":"object","required":["conditions","authors","title","method","timestamp"],"properties":{"type":{"enum":["experiment"]},"authors":{"description":"experiment authors","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"title":{"type":"string","description":"experiment title"},"method":{"type":"string","description":"method used in experiment"},"conditions":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition schema","type":"object","required":["name"],"properties":{"units":{"description":"condition unit","type":"string"},"scalar":{"description":"array of condition values","type":"array","items":{"type":"object","properties":{"value":{"type":"string"}}}},"name":{"description":"human-readable name of the condition","type":"string"}}}},"location":{"$schema":"http://json-schema.org/draft-07/schema#","title":"location schema","type":"object","required":["latitude","longitude"],"properties":{"latitude":{"description":"location latitude","type":"number"},"longitude":{"description":"location longitude","type":"number"}}},"timestamp":{"description":"epoch time.","type":"number"},"note":{"description":"Note about experiment","type":"string"},"references":{"type":"array","description":"references to literature articles","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}}}}},{"$id":"core/reference/literature/name","$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}},{"$id":"core/reference/literature/pages","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","type":"object","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},{"$id":"core/reference/literature","$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},{"$id":"core/reference/modeling/exabyte","$schema":"http://json-schema.org/draft-07/schema#","title":"info for characteristic obtained by exabyte calculation","type":"object","required":["title","_id","owner"],"properties":{"type":{"enum":["exabyte"]},"title":{"description":"Human-readable title of the job","type":"string","maxLength":300},"_id":{"description":"job identifier","type":"string"},"owner":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}}}},{"$id":"core/reference/modeling","$schema":"http://json-schema.org/draft-07/schema#","title":"info for property obtained by modeling, only supports exabyte-originated data atm, but easily extendable","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"info for characteristic obtained by exabyte calculation","type":"object","properties":{"type":{"enum":["exabyte"]},"title":{"description":"Human-readable title of the job","type":"string","maxLength":300},"_id":{"description":"job identifier","type":"string"},"owner":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}}},"required":["title","_id","owner"]}]},{"$id":"core/reference","$schema":"http://json-schema.org/draft-07/schema#","title":"reference schema (using `anyOf` instead of `oneOf` below b/c current reference schemas overlap)","anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"info for property obtained by modeling, only supports exabyte-originated data atm, but easily extendable","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"info for characteristic obtained by exabyte calculation","type":"object","properties":{"type":{"enum":["exabyte"]},"title":{"description":"Human-readable title of the job","type":"string","maxLength":300},"_id":{"description":"job identifier","type":"string"},"owner":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}}},"required":["title","_id","owner"]}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"info for characteristic obtained by experiment","type":"object","properties":{"type":{"enum":["experiment"]},"authors":{"description":"experiment authors","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"title":{"type":"string","description":"experiment title"},"method":{"type":"string","description":"method used in experiment"},"conditions":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition schema","type":"object","required":["name"],"properties":{"units":{"description":"condition unit","type":"string"},"scalar":{"description":"array of condition values","type":"array","items":{"type":"object","properties":{"value":{"type":"string"}}}},"name":{"description":"human-readable name of the condition","type":"string"}}}},"location":{"$schema":"http://json-schema.org/draft-07/schema#","title":"location schema","type":"object","required":["latitude","longitude"],"properties":{"latitude":{"description":"location latitude","type":"number"},"longitude":{"description":"location longitude","type":"number"}}},"timestamp":{"description":"epoch time.","type":"number"},"note":{"description":"Note about experiment","type":"string"},"references":{"type":"array","description":"references to literature articles","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}}}},"required":["conditions","authors","title","method","timestamp"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}}]},{"$id":"core/reusable/atomic-data/per-orbital","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital","description":"Atomic properties per orbital e.g., Hubbard U parameters.","type":"object","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"}}},{"$id":"core/reusable/atomic-data/per-orbital-pair","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital pair","description":"Atomic properties per orbital pair e.g., Hubbard V parameters.","type":"object","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"id2":{"type":"integer","description":"Site number or index in the lattice of second site"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"atomicSpecies2":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co2, O"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalName2":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"distance":{"type":"number","description":"Distance between two sites in Bohr."}}},{"$id":"core/reusable/atomic-data/value-number","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data numeric properties","description":"Numeric value specific to atomic data","type":"object","properties":{"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}},{"$id":"core/reusable/atomic-data/value-string","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data string properties","description":"String value specific to atomic data","type":"object","properties":{"value":{"type":"string","description":"String value specific to atomic data"}}},{"$id":"core/reusable/atomic-data-per-orbital-numeric","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","type":"object","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}},{"$id":"core/reusable/atomic-data-per-orbital-pair-numeric","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital pair numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","type":"object","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"id2":{"type":"integer","description":"Site number or index in the lattice of second site"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"atomicSpecies2":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co2, O"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalName2":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"distance":{"type":"number","description":"Distance between two sites in Bohr."},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}},{"$id":"core/reusable/atomic-orbital","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic orbital schema","type":"object","properties":{"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalIndex":{"type":"integer","minimum":1},"principalNumber":{"type":"integer","minimum":1,"maximum":7},"angularMomentum":{"type":"integer","minimum":0,"maximum":3},"occupation":{"type":"number","description":"Shell occupation","minimum":0,"maximum":14}}},{"$id":"core/reusable/atomic-scalars","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic scalars vectors schema","type":"array","description":"array of objects containing integer id each","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","type":"object","required":["id"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","type":"object","required":["value"],"properties":{"value":{"type":"number"}}},"id":{"description":"integer id of this entry","type":"integer"}}}},{"$id":"core/reusable/atomic-string","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic string schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"string","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}},{"$id":"core/reusable/atomic-vector","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vector schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}},{"$id":"core/reusable/atomic-vectors","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vectors schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vector schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},{"$id":"core/reusable/band-gap","$schema":"http://json-schema.org/draft-07/schema#","title":"band gap schema","type":"object","required":["type","value"],"properties":{"kpointConduction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"kpointValence":{"$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"eigenvalueConduction":{"description":"eigenvalue at k-point in conduction band","type":"number"},"eigenvalueValence":{"description":"eigenvalue at k-point in valence band","type":"number"},"spin":{"type":"number"},"type":{"type":"string","enum":["direct","indirect"]},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},"value":{"type":"number"}}},{"$id":"core/reusable/categories","$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable categories schema","description":"Used to categorize entities such as models and methods","type":"object","properties":{"tier1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"core/reusable/category-path","$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},{"$id":"core/reusable/coordinate-conditions/base","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Condition Schema","description":"Base interface for coordinate shape filters","type":"object","required":["shape"],"properties":{"shape":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]}}},{"$id":"core/reusable/coordinate-conditions/box","$schema":"http://json-schema.org/draft-07/schema#","title":"Box Coordinate Condition Schema","required":["max_coordinate","min_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"box","default":"box","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"min_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"max_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$id":"core/reusable/coordinate-conditions/cylinder","$schema":"http://json-schema.org/draft-07/schema#","title":"Cylinder Coordinate Condition Schema","required":["max_z","min_z","radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"cylinder","default":"cylinder","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$id":"core/reusable/coordinate-conditions/enum","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},{"$id":"core/reusable/coordinate-conditions/index","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Conditions Schema","description":"Combined schema for all coordinate condition types","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Box Coordinate Condition Schema","required":["max_coordinate","min_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"box","default":"box","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"min_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"max_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Sphere Coordinate Condition Schema","required":["radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"sphere","default":"sphere","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Cylinder Coordinate Condition Schema","required":["max_z","min_z","radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"cylinder","default":"cylinder","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Triangular Prism Coordinate Condition Schema","required":["max_z","min_z","position_on_surface_1","position_on_surface_2","position_on_surface_3","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"triangular_prism","default":"triangular_prism","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"position_on_surface_1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Plane Coordinate Condition Schema","required":["plane_normal","plane_point_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"plane","default":"plane","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"plane_normal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"plane_point_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}]},{"$id":"core/reusable/coordinate-conditions/plane","$schema":"http://json-schema.org/draft-07/schema#","title":"Plane Coordinate Condition Schema","required":["plane_normal","plane_point_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"plane","default":"plane","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"plane_normal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"plane_point_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$id":"core/reusable/coordinate-conditions/sphere","$schema":"http://json-schema.org/draft-07/schema#","title":"Sphere Coordinate Condition Schema","required":["radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"sphere","default":"sphere","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0}}},{"$id":"core/reusable/coordinate-conditions/triangular-prism","$schema":"http://json-schema.org/draft-07/schema#","title":"Triangular Prism Coordinate Condition Schema","required":["max_z","min_z","position_on_surface_1","position_on_surface_2","position_on_surface_3","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"triangular_prism","default":"triangular_prism","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"position_on_surface_1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$id":"core/reusable/dielectric-tensor-component","$schema":"http://json-schema.org/draft-07/schema#","title":"Dielectric Tensor","type":"object","required":["part","frequencies","components"],"description":"Schema for a function of frequency yielding a nx3 matrix","properties":{"part":{"description":"Real or imaginary part of the dielectric tensor component","type":"string","enum":["real","imaginary"]},"spin":{"type":"number"},"frequencies":{"description":"Frequencies","type":"array","items":{"type":"number"}},"components":{"description":"Matrix with 3 columns, e.g. x, y, z","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}},{"$id":"core/reusable/energy","$schema":"http://json-schema.org/draft-07/schema#","title":"energy schema","type":"object","required":["name","units","value"],"properties":{"name":{"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"core/reusable/energy-accuracy-levels","$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}},{"$id":"core/reusable/file-metadata","$schema":"http://json-schema.org/draft-07/schema#","title":"file_metadata","type":"object","properties":{"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}},{"$id":"core/reusable/frequency-function-matrix","$schema":"http://json-schema.org/draft-07/schema#","title":"","description":"Schema for a function of frequency yielding a nx3 matrix","type":"object","properties":{"frequencies":{"description":"Frequencies","type":"array","items":{"type":"number"}},"components":{"description":"Matrix with 3 columns, e.g. x, y, z","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}},{"$id":"core/reusable/kpoint","$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},{"$id":"core/reusable/object-storage-container-data","$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},{"$id":"core/reusable/scalar-with-accuracy-levels","$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for scalar values with accuracy levels","type":"object","required":["accuracy_level","value"],"properties":{"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}},{"$id":"definitions/chemical-elements","title":"Chemical Element Symbols","periodic_table":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},"extra":{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]},"all":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}]}},{"$id":"definitions/constants","title":"fundamental constants","description":"Fundamental physical constants, 2022 NIST CODATA (https://doi.org/10.48550/arXiv.2409.03787)","type":"object","required":["c","h","e","G","me","eps0","mu0"],"properties":{"c":{"description":"speed of light in vacuum, \"units\": \"m/s\"","type":"number","default":299792458},"h":{"description":"Planck constant, \"units\": \"J s\"","type":"number","default":6.62607015e-34},"e":{"description":"elementary charge, \"units\": \"C\"","type":"number","default":1.602176634e-19},"G":{"description":"Newtonian constant of gravitation, \"units\": \"m^3/kg/s^2\"","type":"number","default":6.6743015e-11},"me":{"description":"electron mass \"units\": \"kg\"","type":"number","default":9.109383713928e-31},"eps0":{"description":"vacuum permittivity, \"units\": \"F/m\"","type":"number","default":8.854187818814e-12},"mu0":{"description":"vacuum permeability, \"units\": \"N/A^2\"","type":"number","default":0.000001256637061272}}},{"$id":"definitions/material","title":"Materials Definitions","form_factor":{"description":"Form factor of the material","enum":["bulk","slab","monolayer","nanoribbon"]},"dimensionality":{"description":"Dimensionality of the material","enum":["zero-dimensional","one-dimensional","two-dimensional","three-dimensional"]}},{"$id":"definitions/units","title":"all units definitions","angle":{"enum":["degree","radian"],"default":"degree"},"coordinates_basis":{"enum":["crystal","cartesian"],"default":"crystal"},"coordinates_lattice_reciprocal":{"enum":["crystal","cartesian"],"default":"crystal"},"length":{"enum":["km","m","cm","mm","um","nm","angstrom","a.u.","bohr","pm"]},"length_atomic":{"enum":["angstrom","bohr"],"default":"angstrom"},"energy":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},"energy_atomic":{"enum":["eV","hartree","rydberg"],"default":"eV"},"surface_energy":{"enum":["eV/A^2"]},"force":{"enum":["eV/bohr","eV/angstrom","Ry/a.u.","newton","kg*m/s^2","eV/a.u."]},"volume":{"enum":["cm^3","angstrom^3"]},"numberDensity":{"enum":["1/angstrom^3"]},"density":{"enum":["g/cm^3"]},"frequency":{"enum":["cm-1","THz","meV"]},"pressure":{"enum":["kbar","pa"]},"phononDOS":{"enum":["states/cm-1","states/THz","states/meV"]},"electronicDOS":{"enum":["states/unitcell"]},"magnetic":{"enum":["uB"]},"chargeDensity":{"enum":["e/A"]},"spectralIntensity":{"enum":["(debye/angstrom)^2","km/mol","m/mol","a.u."]}},{"$id":"element","$schema":"http://json-schema.org/draft-07/schema#","title":"element schema","type":"object","properties":{"symbol":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},"properties":{"type":"array","description":"list of elemental properties","items":{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic radius","description":"atomic radius","type":"object","required":["name","value"],"properties":{"name":{"enum":["atomic_radius"]},"units":{"enum":["km","m","cm","mm","um","nm","angstrom","a.u.","bohr","pm"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"electronegativity","description":"electronegativity for the element (Pauling scale)","type":"object","required":["name","value"],"properties":{"name":{"enum":["electronegativity"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Ionization potential elemental property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["ionization_potential"]},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},"value":{"type":"number"}}}]}}}},{"$id":"in-memory-entity/base","$schema":"http://json-schema.org/draft-07/schema#","title":"Base in-memory entity schema","type":"object","properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"}}},{"$id":"in-memory-entity/defaultable","$schema":"http://json-schema.org/draft-07/schema#","title":"Defaultable in-memory entity schema","type":"object","properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$id":"in-memory-entity/has-consistency-check-has-metadata-named-defaultable","$schema":"http://json-schema.org/draft-07/schema#","title":"has consistency check has metadata named defaultable in-memory entity schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"consistency check","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"name":{"type":"string","description":"Name of the consistency check that is performed, which is listed in an enum."},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}}}},{"$id":"in-memory-entity/named","$schema":"http://json-schema.org/draft-07/schema#","title":"Named in-memory entity schema","type":"object","properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"}}},{"$id":"in-memory-entity/named-defaultable","$schema":"http://json-schema.org/draft-07/schema#","title":"Named defaultable in-memory entity schema","type":"object","properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$id":"in-memory-entity/named-defaultable-has-metadata","$schema":"http://json-schema.org/draft-07/schema#","title":"Named defaultable has metadata in-memory entity schema","type":"object","properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$id":"in-memory-entity/named-defaultable-runtime-items","$schema":"http://json-schema.org/draft-07/schema#","title":"Named defaultable runtime items in-memory entity schema","type":"object","properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},{"$id":"job/base","$schema":"http://json-schema.org/draft-07/schema#","title":"job base schema","type":"object","required":["status","compute","_project"],"properties":{"rmsId":{"description":"Identity used to track jobs originated from command-line","type":"string"},"status":{"description":"job status","enum":["pre-submission","queued","submitted","active","finished","terminate-queued","terminated","error","deleted","timeout"]},"startTime":{"description":"Approximate start time of the job. e.g. within 10 min","type":"string"},"workDir":{"description":"The path to the working directory of this job, when the job originates from command-line","type":"string"},"compute":{"$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}},"_project":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}},"_material":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}},"parent":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}},"runtimeContext":{"description":"Context variables that the job will have access to at runtime","type":"object"},"scopeTrack":{"description":"history of the workflow scope on each update","type":"array","items":{"type":"object","properties":{"repetition":{"type":"number"},"scope":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow scope schema","type":"object","required":["global","local"],"properties":{"global":{"type":"object","additionalProperties":true},"local":{"type":"object","additionalProperties":true}}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$id":"job/compute","$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}},{"$id":"job","$schema":"http://json-schema.org/draft-07/schema#","title":"job schema","type":"object","required":["_project","compute","status","workflow"],"properties":{"workflow":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow schema","type":"object","required":["units","subworkflows"],"properties":{"subworkflows":{"description":"Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Subworkflow","type":"object","required":["application","model","name","units"],"properties":{"units":{"description":"Contains the Units of the subworkflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow subworkflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","source","subtype","type"],"additionalProperties":true,"properties":{"type":{"const":"io","description":"type of the unit","type":"string"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO rest API input schema","type":"object","properties":{"endpoint":{"description":"rest API endpoint","type":"string"},"endpoint_options":{"description":"rest API endpoint options","type":"object"},"name":{"description":"the name of the variable in local scope to save the data under","type":"string"}},"required":["endpoint","endpoint_options"],"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database input/output schema","type":"object","oneOf":[{"properties":{"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["ids"],"additionalProperties":true},{"properties":{"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["collection","draft"],"additionalProperties":true}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["objectData"],"additionalProperties":true,"properties":{"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}]}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","type"],"additionalProperties":true,"properties":{"type":{"const":"reduce","description":"type of the unit","type":"string"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","statement","then","type"],"additionalProperties":true,"properties":{"type":{"const":"condition","description":"type of the unit","type":"string"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","name","statement","type"],"additionalProperties":true,"properties":{"type":{"const":"assertion","description":"type of the unit","type":"string"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","type"],"additionalProperties":true,"properties":{"type":{"const":"execution","description":"type of the unit","type":"string"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of the executable. e.g. pw.x","type":"string"},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","properties":{"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"input":{"description":"unit input (type to be specified by the application's execution unit)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","name","operand","type","value"],"additionalProperties":true,"properties":{"type":{"const":"assignment","description":"type of the unit","type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"scope":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","operation","operationType","type"],"additionalProperties":true,"properties":{"type":{"const":"processing","description":"type of the unit","type":"string"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"model":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base model","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"isDraft":{"description":"Defines whether to store the results/properties extracted in this unit to properties collection","type":"boolean","default":false},"_id":{"description":"subworkflow identity","type":"string"},"name":{"description":"Human-readable name of the subworkflow. e.g. Total-energy","type":"string"},"properties":{"description":"Array of characteristic properties calculated by this subworkflow","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","type":"string"}},"compute":{"$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}}}}},"units":{"description":"Contains the Units of the Workflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","source","subtype","type"],"additionalProperties":true,"properties":{"type":{"const":"io","description":"type of the unit","type":"string"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO rest API input schema","type":"object","properties":{"endpoint":{"description":"rest API endpoint","type":"string"},"endpoint_options":{"description":"rest API endpoint options","type":"object"},"name":{"description":"the name of the variable in local scope to save the data under","type":"string"}},"required":["endpoint","endpoint_options"],"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database input/output schema","type":"object","oneOf":[{"properties":{"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["ids"],"additionalProperties":true},{"properties":{"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["collection","draft"],"additionalProperties":true}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["objectData"],"additionalProperties":true,"properties":{"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}]}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","type"],"additionalProperties":true,"properties":{"type":{"const":"reduce","description":"type of the unit","type":"string"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","statement","then","type"],"additionalProperties":true,"properties":{"type":{"const":"condition","description":"type of the unit","type":"string"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","name","statement","type"],"additionalProperties":true,"properties":{"type":{"const":"assertion","description":"type of the unit","type":"string"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","type"],"additionalProperties":true,"properties":{"type":{"const":"execution","description":"type of the unit","type":"string"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of the executable. e.g. pw.x","type":"string"},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","properties":{"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"input":{"description":"unit input (type to be specified by the application's execution unit)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","name","operand","type","value"],"additionalProperties":true,"properties":{"type":{"const":"assignment","description":"type of the unit","type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"scope":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","operation","operationType","type"],"additionalProperties":true,"properties":{"type":{"const":"processing","description":"type of the unit","type":"string"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"map unit schema","type":"object","required":["flowchartId","input","type","workflowId"],"additionalProperties":true,"properties":{"type":{"const":"map","description":"type of the unit","type":"string"},"workflowId":{"description":"Id of workflow to run inside map","type":"string"},"input":{"description":"Input information for map.","type":"object","required":["target"],"properties":{"target":{"description":"Name of the target variable to substitute using the values below. e.g. K_POINTS","type":"string"},"scope":{"description":"Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.","type":"string"},"name":{"description":"Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.","type":"string"},"values":{"description":"Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution","type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"object"}]}},"useValues":{"type":"boolean"}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"subworkflow unit schema","type":"object","required":["type","flowchartId"],"additionalProperties":true,"properties":{"type":{"const":"subworkflow","description":"type of the unit","type":"string"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"properties":{"description":"Array of characteristic properties calculated by this workflow (TODO: add enums)","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","oneOf":[{"type":"string"},{"type":"object"}]}},"isUsingDataset":{"description":"Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab.","type":"boolean"},"workflows":{"description":"Array of workflows with the same schema as the current one.","type":"array","items":{"type":"object"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"rmsId":{"description":"Identity used to track jobs originated from command-line","type":"string"},"status":{"description":"job status","enum":["pre-submission","queued","submitted","active","finished","terminate-queued","terminated","error","deleted","timeout"]},"startTime":{"description":"Approximate start time of the job. e.g. within 10 min","type":"string"},"workDir":{"description":"The path to the working directory of this job, when the job originates from command-line","type":"string"},"compute":{"$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}},"_project":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}},"_material":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}},"parent":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}},"runtimeContext":{"description":"Context variables that the job will have access to at runtime","type":"object"},"scopeTrack":{"description":"history of the workflow scope on each update","type":"array","items":{"type":"object","properties":{"repetition":{"type":"number"},"scope":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow scope schema","type":"object","required":["global","local"],"properties":{"global":{"type":"object","additionalProperties":true},"local":{"type":"object","additionalProperties":true}}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$id":"material/consistency-check","$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}},{"$id":"material/conventional","$schema":"http://json-schema.org/draft-07/schema#","title":"material conventional schema","type":"object","properties":{"conventional":{"type":"object"}}},{"$id":"material","$schema":"http://json-schema.org/draft-07/schema#","title":"material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$id":"materials-category/compound-pristine-structures/two-dimensional/interface/configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Interface Configuration Schema","description":"A two-dimensional interface between two slabs, optionally including vacuum, with a specified stacking direction.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":3,"description":"Components of the interface: slab, slab and vacuum","items":[{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Strained Supercell Configuration Schema","description":"A slab structure configuration with supercell transformation and strain matrix in the xy plane","required":["direction","stack_components","strain_matrix","xy_supercell_matrix"],"type":"object","properties":{"xy_supercell_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 2D Schema","description":"Supercell matrix for xy plane transformations","type":"array","minItems":2,"maxItems":2,"default":[[1,0],[0,1]],"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},"strain_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}}]},{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Strained Supercell Configuration Schema","description":"A slab structure configuration with supercell transformation and strain matrix in the xy plane","required":["direction","stack_components","strain_matrix","xy_supercell_matrix"],"type":"object","properties":{"xy_supercell_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 2D Schema","description":"Supercell matrix for xy plane transformations","type":"array","minItems":2,"maxItems":2,"default":[[1,0],[0,1]],"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},"strain_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"xy_shift":{"default":[0,0],"description":"xy shift for the film as cartesian 2D vector on the xy plane.","$schema":"http://json-schema.org/draft-07/schema#","title":"vector 2d schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/defective-structures/one-dimensional/grain-boundary-linear/configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Grain Boundary Linear Configuration Schema","description":"Configuration for creating a linear grain boundary.","required":["stack_components","direction"],"type":"object","properties":{"stack_components":{"maxItems":2,"type":"array","minItems":2,"description":"Components of the interface: slab, slab and vacuum","items":[{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Strained Supercell Configuration Schema","description":"A slab structure configuration with supercell transformation and strain matrix in the xy plane","required":["direction","stack_components","strain_matrix","xy_supercell_matrix"],"type":"object","properties":{"xy_supercell_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 2D Schema","description":"Supercell matrix for xy plane transformations","type":"array","minItems":2,"maxItems":2,"default":[[1,0],[0,1]],"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},"strain_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}}]},{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Strained Supercell Configuration Schema","description":"A slab structure configuration with supercell transformation and strain matrix in the xy plane","required":["direction","stack_components","strain_matrix","xy_supercell_matrix"],"type":"object","properties":{"xy_supercell_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 2D Schema","description":"Supercell matrix for xy plane transformations","type":"array","minItems":2,"maxItems":2,"default":[[1,0],[0,1]],"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},"strain_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"x","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"actual_angle":{"type":"number","description":"The actual angle between the two phases","minimum":0,"maximum":360},"xy_shift":{"default":[0,0],"description":"xy shift for the film as cartesian 2D vector on the xy plane.","$schema":"http://json-schema.org/draft-07/schema#","title":"vector 2d schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/defective-structures/two-dimensional/adatom/configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Adatom Defect Configuration Schema","description":"An adatom point defect configuration where an atom is added to a surface site on a slab.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":3,"maxItems":3,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Point Defect Site Schema","description":"A crystal site with defect information (atom or vacancy) for point defects","type":"object","required":["coordinate","crystal","element"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"element":{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atom Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]}},"required":["chemical_element"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacancy Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"default":"Vac","description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}},"required":["chemical_element"]}]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/defective-structures/two-dimensional/grain-boundary-planar/configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Grain Boundary Planar Configuration Schema","description":"Configuration for creating a grain boundary between two phases.","type":"object","required":["stack_components","direction"],"properties":{"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"stack_components":{"type":"array","minItems":2,"maxItems":3,"description":"Components of the interface: slab, slab and vacuum","items":[{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Strained Supercell Configuration Schema","description":"A slab structure configuration with supercell transformation and strain matrix in the xy plane","required":["direction","stack_components","strain_matrix","xy_supercell_matrix"],"type":"object","properties":{"xy_supercell_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 2D Schema","description":"Supercell matrix for xy plane transformations","type":"array","minItems":2,"maxItems":2,"default":[[1,0],[0,1]],"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},"strain_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}}]},{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Strained Supercell Configuration Schema","description":"A slab structure configuration with supercell transformation and strain matrix in the xy plane","required":["direction","stack_components","strain_matrix","xy_supercell_matrix"],"type":"object","properties":{"xy_supercell_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 2D Schema","description":"Supercell matrix for xy plane transformations","type":"array","minItems":2,"maxItems":2,"default":[[1,0],[0,1]],"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},"strain_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"xy_shift":{"default":[0,0],"description":"xy shift for the film as cartesian 2D vector on the xy plane.","$schema":"http://json-schema.org/draft-07/schema#","title":"vector 2d schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/defective-structures/two-dimensional/island/configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Island Defect Configuration Schema","description":"An island defect configuration where a void region is created in a slab, leaving an island of material.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":3,"maxItems":3,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Schema","description":"A component of a stack, which can be a crystal or a vacuum","required":["merge_components","merge_method"],"type":"object","properties":{"merge_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Void Region Schema","description":"A void region that applies coordinate condition to a crystal or slab and creates a void region","required":["crystal","coordinate_condition"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"coordinate_condition":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Conditions Schema","description":"Combined schema for all coordinate condition types","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Box Coordinate Condition Schema","required":["max_coordinate","min_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"box","default":"box","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"min_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"max_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Sphere Coordinate Condition Schema","required":["radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"sphere","default":"sphere","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Cylinder Coordinate Condition Schema","required":["max_z","min_z","radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"cylinder","default":"cylinder","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Triangular Prism Coordinate Condition Schema","required":["max_z","min_z","position_on_surface_1","position_on_surface_2","position_on_surface_3","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"triangular_prism","default":"triangular_prism","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"position_on_surface_1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Plane Coordinate Condition Schema","required":["plane_normal","plane_point_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"plane","default":"plane","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"plane_normal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"plane_point_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}]}}}]},"merge_method":{"default":"REPLACE","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/defective-structures/two-dimensional/terrace/configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Terrace Defect Configuration Schema","description":"An terrace defect configuration where a void region is created in a slab that is stacked with another slab, creating a terrace.","required":["cut_direction","direction","stack_components"],"type":"object","properties":{"stack_components":{"type":"array","minItems":3,"maxItems":3,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Schema","description":"A component of a stack, which can be a crystal or a vacuum","required":["merge_components","merge_method"],"type":"object","properties":{"merge_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Void Region Schema","description":"A void region that applies coordinate condition to a crystal or slab and creates a void region","required":["crystal","coordinate_condition"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"coordinate_condition":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Conditions Schema","description":"Combined schema for all coordinate condition types","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Box Coordinate Condition Schema","required":["max_coordinate","min_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"box","default":"box","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"min_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"max_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Sphere Coordinate Condition Schema","required":["radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"sphere","default":"sphere","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Cylinder Coordinate Condition Schema","required":["max_z","min_z","radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"cylinder","default":"cylinder","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Triangular Prism Coordinate Condition Schema","required":["max_z","min_z","position_on_surface_1","position_on_surface_2","position_on_surface_3","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"triangular_prism","default":"triangular_prism","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"position_on_surface_1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Plane Coordinate Condition Schema","required":["plane_normal","plane_point_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"plane","default":"plane","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"plane_normal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"plane_point_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}]}}}]},"merge_method":{"default":"REPLACE","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"cut_direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/defective-structures/zero-dimensional/point-defect/base-configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Point Defect Base Configuration Schema","description":"Base configuration for a point defect in a host crystal using merge operation.","required":["merge_components","merge_method"],"properties":{"merge_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}]},"merge_method":{"default":"REPLACE","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]}}},{"$id":"materials-category/defective-structures/zero-dimensional/point-defect/interstitial","$schema":"http://json-schema.org/draft-07/schema#","title":"Interstitial Point Defect Schema","description":"An interstitial point defect configuration where an atom is added to an interstitial site.","required":["merge_components","merge_method"],"properties":{"merge_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Point Defect Site Schema","description":"A crystal site with defect information (atom or vacancy) for point defects","type":"object","required":["coordinate","crystal","element"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"element":{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atom Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]}},"required":["chemical_element"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacancy Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"default":"Vac","description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}},"required":["chemical_element"]}]}}}]},"merge_method":{"default":"REPLACE","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]}}},{"$id":"materials-category/defective-structures/zero-dimensional/point-defect/substitutional","$schema":"http://json-schema.org/draft-07/schema#","title":"Substitutional Point Defect Schema","description":"A substitutional point defect configuration where an atom at a crystal site is replaced with a different element.","required":["merge_components","merge_method"],"properties":{"merge_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Point Defect Site Schema","description":"A crystal site with defect information (atom or vacancy) for point defects","type":"object","required":["coordinate","crystal","element"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"element":{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atom Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]}},"required":["chemical_element"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacancy Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"default":"Vac","description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}},"required":["chemical_element"]}]}}}]},"merge_method":{"default":"REPLACE","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]}}},{"$id":"materials-category/defective-structures/zero-dimensional/point-defect/vacancy","$schema":"http://json-schema.org/draft-07/schema#","title":"Vacancy Point Defect Schema","description":"A vacancy point defect configuration where an atom is removed from a crystal site.","required":["merge_components","merge_method"],"properties":{"merge_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacancy Schema","description":"A chemical element that can be placed at a crystal site","type":"object","required":["chemical_element"],"properties":{"chemical_element":{"default":"Vac","description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}}}]},"merge_method":{"default":"REPLACE","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]}}},{"$id":"materials-category/pristine-structures/three-dimensional/ideal-crystal","$schema":"http://json-schema.org/draft-07/schema#","title":"Ideal Crystal Schema","description":"An ideal, perfect crystal structure","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$id":"materials-category/pristine-structures/two-dimensional/nanoribbon","$schema":"http://json-schema.org/draft-07/schema#","title":"Nanoribbon Configuration Schema","description":"A nanoribbon unit cell consisting of nanotape and vacuum stacked in X direction.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"NanoTape Configuration Schema","description":"A nanotape unit cell consisting of crystal lattice lines and vacuum stacked in Y direction.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Lattice Lines Unique Repeated Schema","description":"Crystal lattice lines unique with integer number of repetitions, forming a full periodic structure with terminations","type":"object","required":["crystal","miller_indices_2d","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"termination_bottom":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions_width":{"type":"integer","minimum":1,"default":1,"description":"Number of repetitions in width direction"},"number_of_repetitions_length":{"type":"integer","minimum":1,"default":1,"description":"Number of repetitions in length direction"},"miller_indices_2d":{"$schema":"http://json-schema.org/draft-07/schema#","title":"2D Miller Indices Schema","description":"The (u,v) Miller indices for the line direction","type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"y","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"x","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/pristine-structures/two-dimensional/nanotape","$schema":"http://json-schema.org/draft-07/schema#","title":"NanoTape Configuration Schema","description":"A nanotape unit cell consisting of crystal lattice lines and vacuum stacked in Y direction.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Lattice Lines Unique Repeated Schema","description":"Crystal lattice lines unique with integer number of repetitions, forming a full periodic structure with terminations","type":"object","required":["crystal","miller_indices_2d","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"termination_bottom":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions_width":{"type":"integer","minimum":1,"default":1,"description":"Number of repetitions in width direction"},"number_of_repetitions_length":{"type":"integer","minimum":1,"default":1,"description":"Number of repetitions in length direction"},"miller_indices_2d":{"$schema":"http://json-schema.org/draft-07/schema#","title":"2D Miller Indices Schema","description":"The (u,v) Miller indices for the line direction","type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"y","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/pristine-structures/two-dimensional/slab","$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/pristine-structures/two-dimensional/slab-strained-supercell","$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Strained Supercell Configuration Schema","description":"A slab structure configuration with supercell transformation and strain matrix in the xy plane","required":["direction","stack_components","strain_matrix","xy_supercell_matrix"],"type":"object","properties":{"xy_supercell_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 2D Schema","description":"Supercell matrix for xy plane transformations","type":"array","minItems":2,"maxItems":2,"default":[[1,0],[0,1]],"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},"strain_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/processed-structures/two-dimensional/passivation/configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Passivation Configuration Schema","description":"Configuration for a passivation that adds passivating atoms to a material surface.","required":["bond_length","merge_components","merge_method","passivant"],"properties":{"merge_components":{"type":"array","minItems":2,"items":{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Point Defect Site Schema","description":"A crystal site with defect information (atom or vacancy) for point defects","type":"object","required":["coordinate","crystal","element"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"element":{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atom Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]}},"required":["chemical_element"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacancy Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"default":"Vac","description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}},"required":["chemical_element"]}]}}}]}},"merge_method":{"default":"ADD","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]},"passivant":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atom Schema","description":"A chemical element that can be placed at a crystal site","type":"object","required":["chemical_element"],"properties":{"chemical_element":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]}}},"bond_length":{"type":"number","default":1,"description":"The bond length for the passivating atoms"}}},{"$id":"materials-category-components/entities/auxiliary/one-dimensional/miller-indices-2d","$schema":"http://json-schema.org/draft-07/schema#","title":"2D Miller Indices Schema","description":"The (u,v) Miller indices for the line direction","type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}},{"$id":"materials-category-components/entities/auxiliary/three-dimensional/supercell-matrix-3d","$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 3D Schema","description":"3x3 matrix of integers for transforming a unit cell into a supercell","type":"array","minItems":3,"maxItems":3,"default":[[1,0,0],[0,1,0],[0,0,1]],"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 integer elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}}},{"$id":"materials-category-components/entities/auxiliary/two-dimensional/miller-indices","$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},{"$id":"materials-category-components/entities/auxiliary/two-dimensional/supercell-matrix-2d","$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 2D Schema","description":"Supercell matrix for xy plane transformations","type":"array","minItems":2,"maxItems":2,"default":[[1,0],[0,1]],"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},{"$id":"materials-category-components/entities/auxiliary/two-dimensional/termination","$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},{"$id":"materials-category-components/entities/auxiliary/zero-dimensional/crystal-site","$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Site Schema","description":"A site in a crystal that can be populated with an atom, vacancy, or void. Should be place in a target basis.","type":"object","required":["crystal","coordinate"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$id":"materials-category-components/entities/auxiliary/zero-dimensional/point-defect-site","$schema":"http://json-schema.org/draft-07/schema#","title":"Point Defect Site Schema","description":"A crystal site with defect information (atom or vacancy) for point defects","type":"object","required":["coordinate","crystal","element"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"element":{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atom Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]}},"required":["chemical_element"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacancy Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"default":"Vac","description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}},"required":["chemical_element"]}]}}},{"$id":"materials-category-components/entities/auxiliary/zero-dimensional/void-region","$schema":"http://json-schema.org/draft-07/schema#","title":"Void Region Schema","description":"A void region that applies coordinate condition to a crystal or slab and creates a void region","required":["crystal","coordinate_condition"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"coordinate_condition":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Conditions Schema","description":"Combined schema for all coordinate condition types","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Box Coordinate Condition Schema","required":["max_coordinate","min_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"box","default":"box","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"min_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"max_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Sphere Coordinate Condition Schema","required":["radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"sphere","default":"sphere","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Cylinder Coordinate Condition Schema","required":["max_z","min_z","radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"cylinder","default":"cylinder","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Triangular Prism Coordinate Condition Schema","required":["max_z","min_z","position_on_surface_1","position_on_surface_2","position_on_surface_3","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"triangular_prism","default":"triangular_prism","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"position_on_surface_1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Plane Coordinate Condition Schema","required":["plane_normal","plane_point_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"plane","default":"plane","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"plane_normal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"plane_point_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}]}}},{"$id":"materials-category-components/entities/core/three-dimensional/crystal","$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$id":"materials-category-components/entities/core/three-dimensional/void","$schema":"http://json-schema.org/draft-07/schema#","title":"Void Schema","description":"A void that can be placed into a crystal, removing all atoms inside","type":"object","required":["center_coordinate","shape"],"properties":{"center_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"shape":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Conditions Schema","description":"Combined schema for all coordinate condition types","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Box Coordinate Condition Schema","required":["max_coordinate","min_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"box","default":"box","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"min_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"max_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Sphere Coordinate Condition Schema","required":["radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"sphere","default":"sphere","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Cylinder Coordinate Condition Schema","required":["max_z","min_z","radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"cylinder","default":"cylinder","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Triangular Prism Coordinate Condition Schema","required":["max_z","min_z","position_on_surface_1","position_on_surface_2","position_on_surface_3","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"triangular_prism","default":"triangular_prism","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"position_on_surface_1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Plane Coordinate Condition Schema","required":["plane_normal","plane_point_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"plane","default":"plane","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"plane_normal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"plane_point_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}]}}},{"$id":"materials-category-components/entities/core/two-dimensional/vacuum","$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}},{"$id":"materials-category-components/entities/core/zero-dimensional/atom","$schema":"http://json-schema.org/draft-07/schema#","title":"Atom Schema","description":"A chemical element that can be placed at a crystal site","type":"object","required":["chemical_element"],"properties":{"chemical_element":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]}}},{"$id":"materials-category-components/entities/core/zero-dimensional/vacancy","$schema":"http://json-schema.org/draft-07/schema#","title":"Vacancy Schema","description":"A chemical element that can be placed at a crystal site","type":"object","required":["chemical_element"],"properties":{"chemical_element":{"default":"Vac","description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}}},{"$id":"materials-category-components/entities/reusable/one-dimensional/crystal-lattice-lines","$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Lattice Lines Schema","description":"A set of crystal lattice lines defined by 2D Miller indices","type":"object","required":["crystal","miller_indices_2d"],"properties":{"miller_indices_2d":{"$schema":"http://json-schema.org/draft-07/schema#","title":"2D Miller Indices Schema","description":"The (u,v) Miller indices for the line direction","type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$id":"materials-category-components/entities/reusable/one-dimensional/crystal-lattice-lines-unique-repeated","$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Lattice Lines Unique Repeated Schema","description":"Crystal lattice lines unique with integer number of repetitions, forming a full periodic structure with terminations","type":"object","required":["crystal","miller_indices_2d","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"termination_bottom":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions_width":{"type":"integer","minimum":1,"default":1,"description":"Number of repetitions in width direction"},"number_of_repetitions_length":{"type":"integer","minimum":1,"default":1,"description":"Number of repetitions in length direction"},"miller_indices_2d":{"$schema":"http://json-schema.org/draft-07/schema#","title":"2D Miller Indices Schema","description":"The (u,v) Miller indices for the line direction","type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$id":"materials-category-components/entities/reusable/three-dimensional/crystal-lattice-base","$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Lattice Base Schema","description":"Base schema for crystal lattice structures defined by crystal and miller indices","type":"object","required":["crystal"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$id":"materials-category-components/entities/reusable/three-dimensional/repetitions","$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Repetitions Schema","description":"Number of unit cells to repeat in each direction for a crystal structure.","type":"array","minItems":3,"maxItems":3,"default":[1,1,1],"items":{"type":"integer","minimum":1}},{"$id":"materials-category-components/entities/reusable/three-dimensional/strained-non-uniform","$schema":"http://json-schema.org/draft-07/schema#","title":"Non-Uniformly Strained Crystal Configuration Schema","description":"A crystal structure with non-uniform strain applied using a strain matrix","type":"object","required":["crystal","strain_matrix"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"strain_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}},{"$id":"materials-category-components/entities/reusable/three-dimensional/strained-uniform","$schema":"http://json-schema.org/draft-07/schema#","title":"Uniformly Strained Crystal Configuration Schema","description":"A crystal structure with uniform strain applied","type":"object","required":["crystal","strain_percentage"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"strain_percentage":{"type":"number","description":"Percentage of uniform strain to apply to the crystal structure"}}},{"$id":"materials-category-components/entities/reusable/three-dimensional/supercell","$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Configuration Schema","description":"A repeated crystal structure defined by a transformation matrix","type":"object","required":["crystal","matrix"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}},{"$id":"materials-category-components/entities/reusable/two-dimensional/atomic-layers","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Schema","description":"A set of atomic layers defined by a plane in a crystal structure with specific terminations","type":"object","required":["crystal","miller_indices","terminations"],"properties":{"terminations":{"type":"array","minItems":1,"description":"All possible terminations for this orientation.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}}},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$id":"materials-category-components/entities/reusable/two-dimensional/atomic-layers-unique","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Schema","description":"A set of unique atomic layers defined by a plane in a crystal structure, including all possible terminations","type":"object","required":["crystal","miller_indices","terminations"],"properties":{"terminations":{"type":"array","minItems":1,"description":"All possible terminations for this orientation.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}}},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$id":"materials-category-components/entities/reusable/two-dimensional/atomic-layers-unique-repeated","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$id":"materials-category-components/entities/reusable/two-dimensional/crystal-lattice-planes","$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Lattice Planes Schema","description":"A set of all possible planes in a crystal defined by Miller indices","type":"object","required":["crystal","miller_indices"],"properties":{"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$id":"materials-category-components/entities/reusable/two-dimensional/slab-stack-configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Stack Configuration Schema","description":"Base configuration for a slab stack with another component and vacuum in the z-direction.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":3,"maxItems":3,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"type":"object"},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category-components/operations/core/combinations/enums","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]},{"$id":"materials-category-components/operations/core/combinations/merge","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Schema","description":"A component of a stack, which can be a crystal or a vacuum","required":["merge_components","merge_method"],"properties":{"merge_components":{"type":"array"},"merge_method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]}}},{"$id":"materials-category-components/operations/core/combinations/stack","$schema":"http://json-schema.org/draft-07/schema#","title":"Stack Schema","description":"A stack of components in a certain direction. The specific types of components should be defined by the inheriting schema.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array"},"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category-components/operations/core/modifications/perturb","$schema":"http://json-schema.org/draft-07/schema#","title":"Perturbation Schema","description":"A perturbation operation that modifies a configuration by applying a perturbation to atoms coordinates.","type":"object","properties":{"material":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material schema","type":"object","required":["basis","lattice"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"perturbation_function":{"type":"string","description":"A function that defines the perturbation (delta in coordinates) to be applied to the atomic coordinates."}}},{"$id":"materials-category-components/operations/core/modifications/repeat","$schema":"http://json-schema.org/draft-07/schema#","title":"Repeat Schema","properties":{"matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 3D Schema","description":"3x3 matrix of integers for transforming a unit cell into a supercell","type":"array","minItems":3,"maxItems":3,"default":[[1,0,0],[0,1,0],[0,0,1]],"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 integer elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}}}}},{"$id":"materials-category-components/operations/core/modifications/strain","$schema":"http://json-schema.org/draft-07/schema#","title":"Strain Schema","properties":{"matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}},{"$id":"method/categorized-method","$schema":"http://json-schema.org/draft-07/schema#","title":"categorized method","type":"object","required":["units"],"properties":{"units":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"categorized unit method","type":"object","properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable categories schema","description":"Used to categorize entities such as models and methods","type":"object","properties":{"tier1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"method/method-parameters","$schema":"http://json-schema.org/draft-07/schema#","title":"MethodParameters","oneOf":[{"type":"object","properties":{"basisSlug":{"enum":["cc-pvdz","cc-pvtz","cc-pvqz"]}}},{"type":"object","properties":{"basisSlug":{"enum":["3-21G","6-31G","6-311G"]}}},{"type":"object","properties":{"basisSlug":{"enum":["sto-3g","sto-4g","sto-6g","def2-svp","def2-tzvp","def2-qzvp","cbs-qb3"]}}}]},{"$id":"method/unit-method","$schema":"http://json-schema.org/draft-07/schema#","title":"categorized unit method","type":"object","properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable categories schema","description":"Used to categorize entities such as models and methods","type":"object","properties":{"tier1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"method","$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}},{"$id":"methods-category/mathematical/diff/enum-options","finiteDifference":{"enum":["fd"]}},{"$id":"methods-category/mathematical/diff/fd","$schema":"http://json-schema.org/draft-07/schema#","title":"Finite difference method category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["fd"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/diff","$schema":"http://json-schema.org/draft-07/schema#","title":"Numerical differentiation category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/discr/enum-options","meshing":{"enum":["mesh"]}},{"$id":"methods-category/mathematical/discr/mesh/enum-options","hybridMesh":{"enum":["hybrid"]},"unstructuredMesh":{"enum":["nstruct"]},"structuredMesh":{"enum":["struct"]}},{"$id":"methods-category/mathematical/discr/mesh/hybrid","$schema":"http://json-schema.org/draft-07/schema#","title":"Hybrid meshing category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["hybrid"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["mesh"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["discr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/discr/mesh/nstruct","$schema":"http://json-schema.org/draft-07/schema#","title":"Unstructured meshing category nstruct schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["nstruct"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["mesh"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["discr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/discr/mesh/struct/cartesian","$schema":"http://json-schema.org/draft-07/schema#","title":"Cartesian grid schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["cartesian"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["struct"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["mesh"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["discr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/discr/mesh/struct/enum-options","cartesian":{"enum":["cartesian"]}},{"$id":"methods-category/mathematical/discr/mesh/struct","$schema":"http://json-schema.org/draft-07/schema#","title":"Structured meshing category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["struct"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["mesh"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["discr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/discr/mesh","$schema":"http://json-schema.org/draft-07/schema#","title":"Meshing method category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["mesh"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["discr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/discr","$schema":"http://json-schema.org/draft-07/schema#","title":"Discretization category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["discr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/enum-options","differentiation":{"enum":["diff"]},"discretization":{"enum":["discr"]},"functionApproximation":{"enum":["fapprx"]},"integration":{"enum":["intgr"]},"linearAlgebra":{"enum":["linalg"]},"optimization":{"enum":["opt"]},"regressionTypes":{"enum":["linear","kernel_ridge"]},"regressionSubtypes":{"enum":["least_squares","ridge"]}},{"$id":"methods-category/mathematical/fapprx/basisexp","$schema":"http://json-schema.org/draft-07/schema#","title":"Basis expansion category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["basisExp"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["fapprx"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/fapprx/enum-options","basisExpansion":{"enum":["basisExp"]},"interpolation":{"enum":["ipol"]}},{"$id":"methods-category/mathematical/fapprx/ipol/enum-options","linear":{"enum":["lin"]},"polynomial":{"enum":["poly"]},"spline":{"enum":["spline"]}},{"$id":"methods-category/mathematical/fapprx/ipol/lin","$schema":"http://json-schema.org/draft-07/schema#","title":"Linear interpolation category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["lin"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["ipol"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["fapprx"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/fapprx/ipol/poly","$schema":"http://json-schema.org/draft-07/schema#","title":"Polynomial interpolation category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["poly"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["ipol"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["fapprx"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/fapprx/ipol/spline","$schema":"http://json-schema.org/draft-07/schema#","title":"Spline interpolation category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["spline"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["ipol"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["fapprx"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/fapprx/ipol","$schema":"http://json-schema.org/draft-07/schema#","title":"Interpolation category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["ipol"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["fapprx"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/fapprx","$schema":"http://json-schema.org/draft-07/schema#","title":"Unstructured meshing category fapprx schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["fapprx"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/analytic/enum-options","volume":{"enum":["volume"]},"volumeSubtypes":{"enum":["sphere","cube","rect-prism","tri-prism","cylinder","cone","tetrahedron","sq-pyr"]}},{"$id":"methods-category/mathematical/intgr/analytic/volume","$schema":"http://json-schema.org/draft-07/schema#","title":"Analytic volume integral category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["volume"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["sphere","cube","rect-prism","tri-prism","cylinder","cone","tetrahedron","sq-pyr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["analytic"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/analytic","$schema":"http://json-schema.org/draft-07/schema#","title":"Analytic integral category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["analytic"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/diffeq/enum-options","firstOrder":{"enum":["order1"]},"secondOrder":{"enum":["order2"]}},{"$id":"methods-category/mathematical/intgr/diffeq/order1","$schema":"http://json-schema.org/draft-07/schema#","description":"Categories for the numerical integration of differential equations","type":"object","title":"Order1 schema","properties":{"tier3":{"enum":["order1"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diffeq"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/diffeq/order2","$schema":"http://json-schema.org/draft-07/schema#","description":"Categories for the numerical integration of differential equations","type":"object","title":"Order2 schema","properties":{"tier3":{"enum":["order2"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diffeq"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/diffeq","$schema":"http://json-schema.org/draft-07/schema#","title":"Methods for the numerical integration of differential equations schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["diffeq"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/enum-options","analytic":{"enum":["analytic"]},"differentialEquation":{"enum":["diffeq"]},"numericalQuadrature":{"enum":["numquad"]},"transformation":{"enum":["transf"]}},{"$id":"methods-category/mathematical/intgr/numquad/enum-options","gaussQuadrature":{"enum":["gauss"]},"newtonCotes":{"enum":["newcot"]}},{"$id":"methods-category/mathematical/intgr/numquad/gauss","$schema":"http://json-schema.org/draft-07/schema#","title":"Gaussian quadrature rules schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["gauss"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["numquad"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/numquad/newcot","$schema":"http://json-schema.org/draft-07/schema#","title":"Newton-Cotes quadrature rules schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["newcot"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["numquad"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/numquad","$schema":"http://json-schema.org/draft-07/schema#","title":"Methods for the numerical quadrature schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["numquad"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/transf/enum-options","fourierTransformation":{"enum":["fourier"]}},{"$id":"methods-category/mathematical/intgr/transf/fourier","$schema":"http://json-schema.org/draft-07/schema#","description":"Fourier transform methods","title":"Fourier transform methods schema","type":"object","properties":{"type":{"enum":["fourier"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["transf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/transf","$schema":"http://json-schema.org/draft-07/schema#","description":"Integral transform methods","title":"Integral transform methods schema","type":"object","properties":{"tier2":{"enum":["transf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr","$schema":"http://json-schema.org/draft-07/schema#","title":"Integration category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/linalg/dcomp","$schema":"http://json-schema.org/draft-07/schema#","title":"Matrix decomposition methods schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["dcomp"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["linalg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/linalg/diag/davidson","$schema":"http://json-schema.org/draft-07/schema#","title":"Davidson diagonalization method schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["davidson"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diag"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["linalg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/linalg/diag/enum-options","davidson":{"enum":["davidson"]}},{"$id":"methods-category/mathematical/linalg/diag","$schema":"http://json-schema.org/draft-07/schema#","title":"Matrix diagonalization methods schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["diag"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["linalg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/linalg/enum-options","decomposition":{"enum":["dcomp"]},"diagonalization":{"enum":["diag"]},"linearTransformation":{"enum":["lintra"]},"matrixFunction":{"enum":["matf"]}},{"$id":"methods-category/mathematical/linalg/lintra","$schema":"http://json-schema.org/draft-07/schema#","title":"Linear transformation methods schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["lintra"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["linalg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/linalg/matf","$schema":"http://json-schema.org/draft-07/schema#","title":"Matrix function methods schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["matf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["linalg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/linalg","$schema":"http://json-schema.org/draft-07/schema#","title":"Linear Algebra category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["linalg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/diff/bracket","$schema":"http://json-schema.org/draft-07/schema#","title":"Bracket algorithms for the optimization of differentiable functions schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["bracket"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/diff/enum-options","bracketing":{"enum":["bracket"]},"localDescent":{"enum":["local"]},"firstOrder":{"enum":["order1"]},"secondOrder":{"enum":["order2"]},"nOrder":{"enum":["ordern"]}},{"$id":"methods-category/mathematical/opt/diff/local","$schema":"http://json-schema.org/draft-07/schema#","title":"Local descent methods for the optimization of differentiable functions schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["local"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/diff/order1","$schema":"http://json-schema.org/draft-07/schema#","title":"First order algorithms for the optimization of differentiable functions schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["order1"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/diff/order2","$schema":"http://json-schema.org/draft-07/schema#","title":"Second order algorithms for the optimization of differentiable functions schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["order2"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/diff/ordern/cg","$schema":"http://json-schema.org/draft-07/schema#","title":"Conjugate gradient method schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["cg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["ordern"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/diff/ordern/enum-options","conjugateGradient":{"enum":["cg"]}},{"$id":"methods-category/mathematical/opt/diff/ordern","$schema":"http://json-schema.org/draft-07/schema#","title":"Mixed order and higher order algorithms for the optimization of differentiable functions schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["ordern"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/diff","$schema":"http://json-schema.org/draft-07/schema#","title":"Optimization methods for differentiable functions category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/enum-options","differentiable":{"enum":["diff"]},"nonDifferentiable":{"enum":["ndiff"]},"rootFinding":{"enum":["root"]}},{"$id":"methods-category/mathematical/opt/ndiff/direct","$schema":"http://json-schema.org/draft-07/schema#","title":"Direct algorithms for the optimization of non-differentiable functions category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["direct"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["ndiff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/ndiff/enum-options","direct":{"enum":["direct"]},"population":{"enum":["pop"]},"stochastic":{"enum":["stoch"]}},{"$id":"methods-category/mathematical/opt/ndiff/pop","$schema":"http://json-schema.org/draft-07/schema#","title":"Population algorithms for the optmization of non-differentiable functions category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["pop"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["ndiff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/ndiff/stoch","$schema":"http://json-schema.org/draft-07/schema#","title":"Stochastic algorithms for the optmization of non-differentiable functions category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["stoch"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["ndiff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/ndiff","$schema":"http://json-schema.org/draft-07/schema#","title":"Optimization methods for non-differentiable functions category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["ndiff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/root/bracket","$schema":"http://json-schema.org/draft-07/schema#","title":"Bracketing method for finding roots category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["bracket"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["root"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/root/enum-options","iterative":{"enum":["iterative"]},"bracketing":{"enum":["bracket"]}},{"$id":"methods-category/mathematical/opt/root/iter","$schema":"http://json-schema.org/draft-07/schema#","title":"Iterative method for root finding category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["iterative"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["root"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/root","$schema":"http://json-schema.org/draft-07/schema#","title":"Root finding category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["root"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt","$schema":"http://json-schema.org/draft-07/schema#","title":"Mathematical opt schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/regression","$schema":"http://json-schema.org/draft-07/schema#","title":"linear methods category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["linear","kernel_ridge"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["least_squares","ridge"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/enum-options","quantumMechanical":{"enum":["qm"]}},{"$id":"methods-category/physical/qm/enum-options","wavefunction":{"enum":["wf"]}},{"$id":"methods-category/physical/qm/wf/ao/dunning","$schema":"http://json-schema.org/draft-07/schema#","title":"Dunning correlation-consistent basis set category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["dunning"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ao"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm/wf/ao/other","$schema":"http://json-schema.org/draft-07/schema#","title":"Other (neither Pople nor Dunning) basis set category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["other"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ao"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm/wf/ao/pople","$schema":"http://json-schema.org/draft-07/schema#","title":"Pople basis set category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["pople"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ao"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm/wf/ao","$schema":"http://json-schema.org/draft-07/schema#","title":"Approximating the electronic wave function with a atomic orbital basis schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["ao"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["pople","dunning","other"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm/wf/enum-options","planewave":{"enum":["pw"]},"atomicOrbital":{"enum":["ao"]},"wavelet":{"enum":["wvl"]},"smearing":{"enum":["smearing"]},"tetrahedron":{"enum":["tetrahedron"]},"pseudization":{"enum":["psp"]},"pseudoSubtypes":{"enum":["us","nc","nc-fr","paw","coulomb"]},"smearingSubtypes":{"enum":["gaussian","marzari-vanderbilt","methfessel-paxton","fermi-dirac"]},"tetrahedronSubtypes":{"enum":["linear","optimized","bloechl"]},"aoTypes":{"enum":["pople","dunning","other"]}},{"$id":"methods-category/physical/qm/wf/psp","$schema":"http://json-schema.org/draft-07/schema#","title":"Pseudopotential category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["psp"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["us","nc","nc-fr","paw","coulomb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm/wf/pw","$schema":"http://json-schema.org/draft-07/schema#","title":"Plane wave catgeory schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["pw"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm/wf/smearing","$schema":"http://json-schema.org/draft-07/schema#","title":"Smearing methods category schema","description":"Approximating Heaviside step function with smooth function","type":"object","properties":{"type":{"enum":["smearing"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["gaussian","marzari-vanderbilt","methfessel-paxton","fermi-dirac"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm/wf/tetrahedron","$schema":"http://json-schema.org/draft-07/schema#","title":"Tetrahedron method for Brillouin zone integration category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["tetrahedron"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["linear","optimized","bloechl"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm/wf","$schema":"http://json-schema.org/draft-07/schema#","title":"Methods related to wave functions schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm","$schema":"http://json-schema.org/draft-07/schema#","title":"Quantum-Mechanical method category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-directory/legacy/localorbital","$schema":"http://json-schema.org/draft-07/schema#","title":"legacy method localorbital","type":"object","required":["type","subtype"],"properties":{"type":{"const":"localorbital","description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"const":"pople","description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}},{"$id":"methods-directory/legacy/pseudopotential","$schema":"http://json-schema.org/draft-07/schema#","title":"legacy method pseudopotential","type":"object","required":["type","subtype"],"properties":{"type":{"const":"pseudopotential","description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"enum":["paw","nc","us","any"],"default":"us","description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}},{"$id":"methods-directory/legacy/regression","$schema":"http://json-schema.org/draft-07/schema#","title":"legacy method regression","type":"object","required":["data","precision","subtype","type"],"properties":{"type":{"enum":["linear","kernel_ridge"],"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"enum":["least_squares","ridge"],"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"$schema":"http://json-schema.org/draft-07/schema#","title":"regression precision","type":"object","description":"Object showing the actual possible precision based on theory and implementation","properties":{"perProperty":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"regression precision per property schema","type":"object","required":["trainingError"],"properties":{"name":{"description":"property name in 'flattened' format","type":"string"},"trainingError":{"description":"training error of the estimator","type":"number"},"score":{"description":"prediction score of the estimator. Eg: r2_score","type":"number"}}}}}},"data":{"$schema":"http://json-schema.org/draft-07/schema#","title":"regression data","type":"object","description":"additional data specific to method, eg. array of pseudopotentials","properties":{"perProperty":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"linear regression parameters schema","type":"object","properties":{"intercept":{"description":"intercept (shift) from the linear or non-linear fit of data points","type":"number"},"perFeature":{"type":"array","description":"per-feature (property used for training the ML method/model) parameters","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}}}},"required":["intercept","perFeature"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"kernel-ridge regression parameters schema","type":"object","properties":{"xFit":{"description":"training data","type":"array"},"dualCoefficients":{"description":"dual coefficients","type":"array"},"perFeature":{"type":"array","description":"per-feature (property used for training the ML method/model) parameters","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}}}},"required":["xFit","dualCoefficients","perFeature"]}]}},"dataSet":{"$schema":"http://json-schema.org/draft-07/schema#","description":"dataset for ml","type":"object","required":["exabyteIds"],"properties":{"exabyteIds":{"description":"array of exabyteIds for materials in dataset","type":"array","items":{"type":"string"}},"extra":{"description":"holder for any extra information, eg. coming from user-uploaded CSV file"}}}}}}},{"$id":"methods-directory/legacy/unknown","$schema":"http://json-schema.org/draft-07/schema#","title":"legacy method unknown","type":"object","required":["type","subtype"],"properties":{"type":{"const":"unknown","description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"const":"unknown","description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}},{"$id":"methods-directory/mathematical/cg","$schema":"http://json-schema.org/draft-07/schema#","title":"Unit method conjugate gradient","description":"conjugate gradient method schema","type":"object","required":["categories"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Conjugate gradient method schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["cg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["ordern"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/mathematical/davidson","$schema":"http://json-schema.org/draft-07/schema#","title":"Unit method davidson schema","description":"Davidson diagonalization method","type":"object","required":["categories"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Davidson diagonalization method schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["davidson"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diag"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["linalg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/mathematical/regression/data","$schema":"http://json-schema.org/draft-07/schema#","title":"regression data","type":"object","properties":{"perProperty":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"linear regression parameters schema","type":"object","properties":{"intercept":{"description":"intercept (shift) from the linear or non-linear fit of data points","type":"number"},"perFeature":{"type":"array","description":"per-feature (property used for training the ML method/model) parameters","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}}}},"required":["intercept","perFeature"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"kernel-ridge regression parameters schema","type":"object","properties":{"xFit":{"description":"training data","type":"array"},"dualCoefficients":{"description":"dual coefficients","type":"array"},"perFeature":{"type":"array","description":"per-feature (property used for training the ML method/model) parameters","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}}}},"required":["xFit","dualCoefficients","perFeature"]}]}},"dataSet":{"$schema":"http://json-schema.org/draft-07/schema#","description":"dataset for ml","type":"object","required":["exabyteIds"],"properties":{"exabyteIds":{"description":"array of exabyteIds for materials in dataset","type":"array","items":{"type":"string"}},"extra":{"description":"holder for any extra information, eg. coming from user-uploaded CSV file"}}}}},{"$id":"methods-directory/mathematical/regression/dataset","$schema":"http://json-schema.org/draft-07/schema#","description":"dataset for ml","type":"object","required":["exabyteIds"],"properties":{"exabyteIds":{"description":"array of exabyteIds for materials in dataset","type":"array","items":{"type":"string"}},"extra":{"description":"holder for any extra information, eg. coming from user-uploaded CSV file"}}},{"$id":"methods-directory/mathematical/regression/kernel-ridge/data-per-property","$schema":"http://json-schema.org/draft-07/schema#","title":"kernel-ridge regression parameters schema","type":"object","required":["xFit","dualCoefficients","perFeature"],"properties":{"xFit":{"description":"training data","type":"array"},"dualCoefficients":{"description":"dual coefficients","type":"array"},"perFeature":{"type":"array","description":"per-feature (property used for training the ML method/model) parameters","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}}}}},{"$id":"methods-directory/mathematical/regression/linear/data-per-property","$schema":"http://json-schema.org/draft-07/schema#","title":"linear regression parameters schema","type":"object","required":["intercept","perFeature"],"properties":{"intercept":{"description":"intercept (shift) from the linear or non-linear fit of data points","type":"number"},"perFeature":{"type":"array","description":"per-feature (property used for training the ML method/model) parameters","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}}}}},{"$id":"methods-directory/mathematical/regression/per-feature-item","$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}},{"$id":"methods-directory/mathematical/regression/precision","$schema":"http://json-schema.org/draft-07/schema#","title":"regression precision","type":"object","properties":{"perProperty":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"regression precision per property schema","type":"object","required":["trainingError"],"properties":{"name":{"description":"property name in 'flattened' format","type":"string"},"trainingError":{"description":"training error of the estimator","type":"number"},"score":{"description":"prediction score of the estimator. Eg: r2_score","type":"number"}}}}}},{"$id":"methods-directory/mathematical/regression/precision-per-property","$schema":"http://json-schema.org/draft-07/schema#","title":"regression precision per property schema","type":"object","required":["trainingError"],"properties":{"name":{"description":"property name in 'flattened' format","type":"string"},"trainingError":{"description":"training error of the estimator","type":"number"},"score":{"description":"prediction score of the estimator. Eg: r2_score","type":"number"}}},{"$id":"methods-directory/mathematical/regression","$schema":"http://json-schema.org/draft-07/schema#","title":"unit method regression","type":"object","required":["categories","precision","data"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"linear methods category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["linear","kernel_ridge"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["least_squares","ridge"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"precision":{"$schema":"http://json-schema.org/draft-07/schema#","title":"regression precision","type":"object","description":"Object showing the actual possible precision based on theory and implementation","properties":{"perProperty":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"regression precision per property schema","type":"object","required":["trainingError"],"properties":{"name":{"description":"property name in 'flattened' format","type":"string"},"trainingError":{"description":"training error of the estimator","type":"number"},"score":{"description":"prediction score of the estimator. Eg: r2_score","type":"number"}}}}}},"data":{"$schema":"http://json-schema.org/draft-07/schema#","title":"regression data","type":"object","properties":{"perProperty":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"linear regression parameters schema","type":"object","properties":{"intercept":{"description":"intercept (shift) from the linear or non-linear fit of data points","type":"number"},"perFeature":{"type":"array","description":"per-feature (property used for training the ML method/model) parameters","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}}}},"required":["intercept","perFeature"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"kernel-ridge regression parameters schema","type":"object","properties":{"xFit":{"description":"training data","type":"array"},"dualCoefficients":{"description":"dual coefficients","type":"array"},"perFeature":{"type":"array","description":"per-feature (property used for training the ML method/model) parameters","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}}}},"required":["xFit","dualCoefficients","perFeature"]}]}},"dataSet":{"$schema":"http://json-schema.org/draft-07/schema#","description":"dataset for ml","type":"object","required":["exabyteIds"],"properties":{"exabyteIds":{"description":"array of exabyteIds for materials in dataset","type":"array","items":{"type":"string"}},"extra":{"description":"holder for any extra information, eg. coming from user-uploaded CSV file"}}}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/physical/ao/dunning","$schema":"http://json-schema.org/draft-07/schema#","title":"unit method ao dunning","description":"Dunning correlation-consistent basis set unit method","type":"object","required":["categories"],"definitions":{"ao-basis-dunning":{"type":"object","properties":{"basisSlug":{"enum":["cc-pvdz","cc-pvtz","cc-pvqz"]}}}},"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Dunning correlation-consistent basis set category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["dunning"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ao"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"type":"object","description":"Instructive parameters defining the method","properties":{"basisSlug":{"enum":["cc-pvdz","cc-pvtz","cc-pvqz"]}}},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/physical/ao/enum-options","popleAoBasis":{"enum":["3-21G","6-31G","6-311G"]},"dunningAoBasis":{"enum":["cc-pvdz","cc-pvtz","cc-pvqz"]},"otherAoBasis":{"enum":["sto-3g","sto-4g","sto-6g","def2-svp","def2-tzvp","def2-qzvp","cbs-qb3"]}},{"$id":"methods-directory/physical/ao/other","$schema":"http://json-schema.org/draft-07/schema#","title":"unit method ao other","description":"Other (neither Pople nor Dunning) basis set unit method","type":"object","required":["categories"],"definitions":{"ao-basis-other":{"type":"object","properties":{"basisSlug":{"enum":["sto-3g","sto-4g","sto-6g","def2-svp","def2-tzvp","def2-qzvp","cbs-qb3"]}}}},"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Other (neither Pople nor Dunning) basis set category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["other"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ao"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"type":"object","description":"Instructive parameters defining the method","properties":{"basisSlug":{"enum":["sto-3g","sto-4g","sto-6g","def2-svp","def2-tzvp","def2-qzvp","cbs-qb3"]}}},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/physical/ao/pople","$schema":"http://json-schema.org/draft-07/schema#","title":"unit method ao pople","description":"Pople basis set unit method","type":"object","required":["categories"],"definitions":{"ao-basis-pople":{"type":"object","properties":{"basisSlug":{"enum":["3-21G","6-31G","6-311G"]}}}},"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Pople basis set category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["pople"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ao"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"type":"object","description":"Instructive parameters defining the method","properties":{"basisSlug":{"enum":["3-21G","6-31G","6-311G"]}}},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/physical/psp/file","$schema":"http://json-schema.org/draft-07/schema#","title":"Pseudopotential file","type":"object","properties":{"slug":{"enum":["pseudopotential"]},"data":{"$schema":"http://json-schema.org/draft-07/schema#","title":"File data item","type":"object","required":["element","type","exchangeCorrelation","source","path","apps","name","hash"],"properties":{"element":{"type":"string","description":"chemical element"},"hash":{"type":"string","description":"MD5 hash of the pseudopotential file"},"type":{"enum":["us","nc","nc-fr","paw","coulomb"]},"source":{"type":"string","description":"explains where this came from"},"version":{"type":"string","description":"explains the version of where this came from"},"exchangeCorrelation":{"type":"object","properties":{"approximation":{"description":"DFT approximation","type":"string"},"functional":{"description":"Exchange correlation functional","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"}}},"valenceConfiguration":{"type":"array","description":"contains pseudo orbital information, including orbital names and occupations","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic orbital schema","type":"object","properties":{"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalIndex":{"type":"integer","minimum":1},"principalNumber":{"type":"integer","minimum":1,"maximum":7},"angularMomentum":{"type":"integer","minimum":0,"maximum":3},"occupation":{"type":"number","description":"Shell occupation","minimum":0,"maximum":14}}}},"path":{"type":"string","description":"location of the pseudopotential file on filesystem"},"apps":{"type":"array","description":"The names of the simulation engines that can use this pseudopotential, e.g. espresso","items":{"type":"string"}},"filename":{"type":"string","description":"filename of pseudopotential file on filesystem"},"name":{"type":"string","description":"name of the data category","enum":["pseudopotential"]},"cutoffs":{"type":"object","description":"Suggested cutoff values for wave function and charge density.","additionalProperties":false,"properties":{"wavefunction":{"type":"array","description":"Energy cutoff values for wavefunction plane wave expansion.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}}},"density":{"type":"array","description":"Energy cutoff values for charge density plane wave expansion.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}}}}}}},"source":{"type":"object","description":"TODO: remove in the future","properties":{"info":{"type":"object"},"type":{"type":"string"}}}}},{"$id":"methods-directory/physical/psp/file-data-item","$schema":"http://json-schema.org/draft-07/schema#","title":"File data item","type":"object","required":["element","type","exchangeCorrelation","source","path","apps","name","hash"],"properties":{"element":{"type":"string","description":"chemical element"},"hash":{"type":"string","description":"MD5 hash of the pseudopotential file"},"type":{"enum":["us","nc","nc-fr","paw","coulomb"]},"source":{"type":"string","description":"explains where this came from"},"version":{"type":"string","description":"explains the version of where this came from"},"exchangeCorrelation":{"type":"object","properties":{"approximation":{"description":"DFT approximation","type":"string"},"functional":{"description":"Exchange correlation functional","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"}}},"valenceConfiguration":{"type":"array","description":"contains pseudo orbital information, including orbital names and occupations","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic orbital schema","type":"object","properties":{"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalIndex":{"type":"integer","minimum":1},"principalNumber":{"type":"integer","minimum":1,"maximum":7},"angularMomentum":{"type":"integer","minimum":0,"maximum":3},"occupation":{"type":"number","description":"Shell occupation","minimum":0,"maximum":14}}}},"path":{"type":"string","description":"location of the pseudopotential file on filesystem"},"apps":{"type":"array","description":"The names of the simulation engines that can use this pseudopotential, e.g. espresso","items":{"type":"string"}},"filename":{"type":"string","description":"filename of pseudopotential file on filesystem"},"name":{"type":"string","description":"name of the data category","enum":["pseudopotential"]},"cutoffs":{"type":"object","description":"Suggested cutoff values for wave function and charge density.","additionalProperties":false,"properties":{"wavefunction":{"type":"array","description":"Energy cutoff values for wavefunction plane wave expansion.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}}},"density":{"type":"array","description":"Energy cutoff values for charge density plane wave expansion.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}}}}}}},{"$id":"methods-directory/physical/psp","$schema":"http://json-schema.org/draft-07/schema#","title":"unit method pseudopotential","description":"Core-valence separation by means of pseudopotentials (effective potential)","type":"object","required":["categories"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Pseudopotential category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["psp"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["us","nc","nc-fr","paw","coulomb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"data":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Pseudopotential file","type":"object","properties":{"slug":{"enum":["pseudopotential"]},"data":{"$schema":"http://json-schema.org/draft-07/schema#","title":"File data item","type":"object","required":["element","type","exchangeCorrelation","source","path","apps","name","hash"],"properties":{"element":{"type":"string","description":"chemical element"},"hash":{"type":"string","description":"MD5 hash of the pseudopotential file"},"type":{"enum":["us","nc","nc-fr","paw","coulomb"]},"source":{"type":"string","description":"explains where this came from"},"version":{"type":"string","description":"explains the version of where this came from"},"exchangeCorrelation":{"type":"object","properties":{"approximation":{"description":"DFT approximation","type":"string"},"functional":{"description":"Exchange correlation functional","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"}}},"valenceConfiguration":{"type":"array","description":"contains pseudo orbital information, including orbital names and occupations","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic orbital schema","type":"object","properties":{"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalIndex":{"type":"integer","minimum":1},"principalNumber":{"type":"integer","minimum":1,"maximum":7},"angularMomentum":{"type":"integer","minimum":0,"maximum":3},"occupation":{"type":"number","description":"Shell occupation","minimum":0,"maximum":14}}}},"path":{"type":"string","description":"location of the pseudopotential file on filesystem"},"apps":{"type":"array","description":"The names of the simulation engines that can use this pseudopotential, e.g. espresso","items":{"type":"string"}},"filename":{"type":"string","description":"filename of pseudopotential file on filesystem"},"name":{"type":"string","description":"name of the data category","enum":["pseudopotential"]},"cutoffs":{"type":"object","description":"Suggested cutoff values for wave function and charge density.","additionalProperties":false,"properties":{"wavefunction":{"type":"array","description":"Energy cutoff values for wavefunction plane wave expansion.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}}},"density":{"type":"array","description":"Energy cutoff values for charge density plane wave expansion.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}}}}}}},"source":{"type":"object","description":"TODO: remove in the future","properties":{"info":{"type":"object"},"type":{"type":"string"}}}}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/physical/pw","$schema":"http://json-schema.org/draft-07/schema#","title":"unit method plane wave","description":"Approximating the electronic wave function with a plane wave basis","type":"object","required":["categories"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Plane wave catgeory schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["pw"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/physical/smearing","$schema":"http://json-schema.org/draft-07/schema#","title":"unit method smearing","description":"Approximating Heaviside step function with smooth function","type":"object","required":["categories"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Smearing methods category schema","description":"Approximating Heaviside step function with smooth function","type":"object","properties":{"type":{"enum":["smearing"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["gaussian","marzari-vanderbilt","methfessel-paxton","fermi-dirac"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/physical/tetrahedron","$schema":"http://json-schema.org/draft-07/schema#","title":"unit method tetrahedron","type":"object","required":["categories"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Tetrahedron method for Brillouin zone integration category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["tetrahedron"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["linear","optimized","bloechl"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"model/categorized-model","$schema":"http://json-schema.org/draft-07/schema#","title":"categorized model","type":"object","required":["categories","method","parameters"],"properties":{"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"categorized method","type":"object","required":["units"],"properties":{"units":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"categorized unit method","type":"object","properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable categories schema","description":"Used to categorize entities such as models and methods","type":"object","properties":{"tier1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable categories schema","description":"Used to categorize entities such as models and methods","type":"object","properties":{"tier1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"type":"object","description":"Model parameters defined in-place or via model mixins"},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"model/mixins/dft/double-hybrid-functional","$schema":"http://json-schema.org/draft-07/schema#","title":"Double hybrid functional mixin","type":"object","properties":{"functional":{"enum":["b2plyp"]}}},{"$id":"model/mixins/dft/enum-options","lda":{"enum":["pz"]},"gga":{"enum":["pbe","pbesol"]},"mgga":{"enum":["scan"]},"hybrid":{"enum":["hse06","b3lyp"]},"doubleHybrid":{"enum":["b2plyp"]}},{"$id":"model/mixins/dft/gga-functional","$schema":"http://json-schema.org/draft-07/schema#","title":"GGA functional mixin","type":"object","additionalProperties":true,"properties":{"functional":{"enum":["pbe","pbesol"]}}},{"$id":"model/mixins/dft/hybrid-functional","$schema":"http://json-schema.org/draft-07/schema#","title":"Hybrid functional mixin","type":"object","properties":{"functional":{"enum":["hse06","b3lyp"]}}},{"$id":"model/mixins/dft/lda-functional","$schema":"http://json-schema.org/draft-07/schema#","title":"LDA functional mixin","type":"object","additionalProperties":true,"properties":{"functional":{"enum":["pz"]}}},{"$id":"model/mixins/dft/mgga-functional","$schema":"http://json-schema.org/draft-07/schema#","title":"Meta-GGA functional mixin","type":"object","additionalProperties":true,"properties":{"functional":{"enum":["scan"]}}},{"$id":"model/mixins/dispersion-correction","$schema":"http://json-schema.org/draft-07/schema#","title":"Dispersion correction mixin","type":"object","properties":{"dispersionCorrection":{"enum":["dft-d2","dft-d3","xdm","ts"]}}},{"$id":"model/mixins/enum-options","spinPolarization":{"enum":["collinear","non-collinear"]},"dispersionCorrection":{"enum":["dft-d2","dft-d3","xdm","ts"]},"hubbardType":{"enum":["u"]}},{"$id":"model/mixins/hubbard","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard model mixin","type":"object","properties":{"hubbardType":{"enum":["u"]}}},{"$id":"model/mixins/spin-orbit-coupling","$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-orbit coupling mixin","type":"object","additionalProperties":true,"properties":{"spinOrbitCoupling":{"type":"boolean"}}},{"$id":"model/mixins/spin-polarization","$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-polarization mixin","type":"object","additionalProperties":true,"properties":{"spinPolarization":{"enum":["collinear","non-collinear"]}}},{"$id":"model/model-parameters","$schema":"http://json-schema.org/draft-07/schema#","title":"ModelParameters","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"LDA functional mixin","type":"object","properties":{"functional":{"enum":["pz"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"GGA functional mixin","type":"object","properties":{"functional":{"enum":["pbe","pbesol"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Meta-GGA functional mixin","type":"object","properties":{"functional":{"enum":["scan"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hybrid functional mixin","type":"object","properties":{"functional":{"enum":["hse06","b3lyp"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Double hybrid functional mixin","type":"object","properties":{"functional":{"enum":["b2plyp"]}}}],"additionalProperties":true,"properties":{"hubbardType":{"enum":["u"]},"spinPolarization":{"enum":["collinear","non-collinear"]},"spinOrbitCoupling":{"type":"boolean"},"dispersionCorrection":{"enum":["dft-d2","dft-d3","xdm","ts"]}}},{"$id":"model/model-without-method","$schema":"http://json-schema.org/draft-07/schema#","title":"model without method schema (base)","type":"object","required":["categories","parameters"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable categories schema","description":"Used to categorize entities such as models and methods","type":"object","properties":{"tier1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"type":"object","description":"Model parameters defined in-place or via model mixins"},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"model","$schema":"http://json-schema.org/draft-07/schema#","title":"base model","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},{"$id":"models-category/enum-options","physicsBased":{"enum":["pb"]},"statistical":{"enum":["st"]}},{"$id":"models-category/pb/enum-options","quantumMechanical":{"enum":["qm"]}},{"$id":"models-category/pb/qm/abin/enum-options","gwApproximation":{"enum":["gw"]},"gwSubtypes":{"enum":["g0w0","evgw0","evgw"]}},{"$id":"models-category/pb/qm/abin/gw","$schema":"http://json-schema.org/draft-07/schema#","title":"GW category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["gw"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["g0w0","evgw0","evgw"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["abin"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/abin","$schema":"http://json-schema.org/draft-07/schema#","title":"Ab initio category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["abin"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/dft/enum-options","kohnSham":{"enum":["ksdft"]}},{"$id":"models-category/pb/qm/dft/ksdft/double-hybrid","$schema":"http://json-schema.org/draft-07/schema#","title":"DFT double hybrid functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["double-hybrid"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/dft/ksdft/enum-options","localDensityApproximation":{"enum":["lda"]},"generalizedGradientApproximation":{"enum":["gga"]},"metaGGA":{"enum":["mgga"]},"hybrid":{"enum":["hybrid"]},"doubleHybrid":{"enum":["double-hybrid"]}},{"$id":"models-category/pb/qm/dft/ksdft/gga","$schema":"http://json-schema.org/draft-07/schema#","title":"DFT GGA functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["gga"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/dft/ksdft/hybrid","$schema":"http://json-schema.org/draft-07/schema#","title":"DFT hybrid functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["hybrid"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/dft/ksdft/lda","$schema":"http://json-schema.org/draft-07/schema#","title":"DFT LDA functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["lda"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/dft/ksdft/mgga","$schema":"http://json-schema.org/draft-07/schema#","title":"DFT meta-GGA functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["mgga"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/dft/ksdft","$schema":"http://json-schema.org/draft-07/schema#","title":"Kohn-Sham DFT category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/dft","$schema":"http://json-schema.org/draft-07/schema#","title":"Density functional theory category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/enum-options","abInitio":{"enum":["abin"]},"densityFunctional":{"enum":["dft"]},"semiEmpirical":{"enum":["semp"]}},{"$id":"models-category/pb/qm/semp","$schema":"http://json-schema.org/draft-07/schema#","title":"Semi-empirical category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["semp"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm","$schema":"http://json-schema.org/draft-07/schema#","title":"Quantum mechanical category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb","$schema":"http://json-schema.org/draft-07/schema#","title":"physics-based model category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/st/det/enum-options","machineLearning":{"enum":["ml"]}},{"$id":"models-category/st/det/ml/enum-options","regression":{"enum":["re"]}},{"$id":"models-category/st/det/ml/re","$schema":"http://json-schema.org/draft-07/schema#","title":"regression model category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["re"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["ml"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["det"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["st"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/st/det/ml","$schema":"http://json-schema.org/draft-07/schema#","title":"machine learning model category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["ml"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["det"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["st"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/st/det","$schema":"http://json-schema.org/draft-07/schema#","title":"deterministic model category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["det"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["st"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/st/enum-options","deterministic":{"enum":["det"]}},{"$id":"models-category/st","$schema":"http://json-schema.org/draft-07/schema#","title":"statistical model category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["st"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-directory/double-hybrid","$schema":"http://json-schema.org/draft-07/schema#","title":"model double hybrid functional","type":"object","required":["categories","parameters"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"DFT double hybrid functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["double-hybrid"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Double hybrid functional mixin","type":"object","anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-orbit coupling mixin","type":"object","properties":{"spinOrbitCoupling":{"type":"boolean"}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Dispersion correction mixin","type":"object","properties":{"dispersionCorrection":{"enum":["dft-d2","dft-d3","xdm","ts"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-polarization mixin","type":"object","properties":{"spinPolarization":{"enum":["collinear","non-collinear"]}},"additionalProperties":true}],"description":"Model parameters defined in-place or via model mixins","properties":{"functional":{"enum":["b2plyp"]}}},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"models-directory/gga","$schema":"http://json-schema.org/draft-07/schema#","title":"model generalized gradient approximation","type":"object","required":["categories","parameters"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"DFT GGA functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["gga"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"$schema":"http://json-schema.org/draft-07/schema#","title":"GGA functional mixin","type":"object","anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-orbit coupling mixin","type":"object","properties":{"spinOrbitCoupling":{"type":"boolean"}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Dispersion correction mixin","type":"object","properties":{"dispersionCorrection":{"enum":["dft-d2","dft-d3","xdm","ts"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-polarization mixin","type":"object","properties":{"spinPolarization":{"enum":["collinear","non-collinear"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard model mixin","type":"object","properties":{"hubbardType":{"enum":["u"]}}}],"description":"Model parameters defined in-place or via model mixins","additionalProperties":true,"properties":{"functional":{"enum":["pbe","pbesol"]}}},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"models-directory/gw","$schema":"http://json-schema.org/draft-07/schema#","title":"model gw approximation","type":"object","required":["categories","parameters"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"GW category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["gw"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["g0w0","evgw0","evgw"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["abin"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"LDA functional mixin","type":"object","properties":{"functional":{"enum":["pz"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"GGA functional mixin","type":"object","properties":{"functional":{"enum":["pbe","pbesol"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Meta-GGA functional mixin","type":"object","properties":{"functional":{"enum":["scan"]}},"additionalProperties":true}],"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-polarization mixin","type":"object","properties":{"spinPolarization":{"enum":["collinear","non-collinear"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-orbit coupling mixin","type":"object","properties":{"spinOrbitCoupling":{"type":"boolean"}},"additionalProperties":true}],"description":"Model parameters defined in-place or via model mixins","properties":{"require":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"}}},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"models-directory/hybrid","$schema":"http://json-schema.org/draft-07/schema#","title":"model hybrid functional","type":"object","required":["categories","parameters"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"DFT hybrid functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["hybrid"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hybrid functional mixin","type":"object","anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-orbit coupling mixin","type":"object","properties":{"spinOrbitCoupling":{"type":"boolean"}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Dispersion correction mixin","type":"object","properties":{"dispersionCorrection":{"enum":["dft-d2","dft-d3","xdm","ts"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-polarization mixin","type":"object","properties":{"spinPolarization":{"enum":["collinear","non-collinear"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard model mixin","type":"object","properties":{"hubbardType":{"enum":["u"]}}}],"description":"Model parameters defined in-place or via model mixins","properties":{"functional":{"enum":["hse06","b3lyp"]}}},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"models-directory/lda","$schema":"http://json-schema.org/draft-07/schema#","title":"model local density approximation","type":"object","required":["categories","parameters"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"DFT LDA functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["lda"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"$schema":"http://json-schema.org/draft-07/schema#","title":"LDA functional mixin","type":"object","anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-orbit coupling mixin","type":"object","properties":{"spinOrbitCoupling":{"type":"boolean"}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Dispersion correction mixin","type":"object","properties":{"dispersionCorrection":{"enum":["dft-d2","dft-d3","xdm","ts"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-polarization mixin","type":"object","properties":{"spinPolarization":{"enum":["collinear","non-collinear"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard model mixin","type":"object","properties":{"hubbardType":{"enum":["u"]}}}],"description":"Model parameters defined in-place or via model mixins","additionalProperties":true,"properties":{"functional":{"enum":["pz"]}}},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"models-directory/legacy/dft","$schema":"http://json-schema.org/draft-07/schema#","title":"legacy model density functional theory","type":"object","definitions":{"lda":{"properties":{"subtype":{"const":"lda"},"functional":{"enum":["pz","pw","vwn","other"]}}},"gga":{"properties":{"subtype":{"const":"gga"},"functional":{"enum":["pbe","pbesol","pw91","other"]}}},"hybrid":{"properties":{"subtype":{"const":"hybrid"},"functional":{"enum":["b3lyp","hse06"]}}}},"required":["type","subtype","method"],"oneOf":[{"properties":{"subtype":{"const":"lda"},"functional":{"enum":["pz","pw","vwn","other"]}}},{"properties":{"subtype":{"const":"gga"},"functional":{"enum":["pbe","pbesol","pw91","other"]}}},{"properties":{"subtype":{"const":"hybrid"},"functional":{"enum":["b3lyp","hse06"]}}}],"additionalProperties":true,"properties":{"type":{"const":"dft","description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},{"$id":"models-directory/legacy/ml","$schema":"http://json-schema.org/draft-07/schema#","title":"legacy model regression","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"enum":["ml"],"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"enum":["re"],"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},{"$id":"models-directory/legacy/unknown","$schema":"http://json-schema.org/draft-07/schema#","title":"legacy model unknown","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"enum":["unknown"],"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"enum":["unknown"],"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},{"$id":"models-directory/mgga","$schema":"http://json-schema.org/draft-07/schema#","title":"model meta generalized gradient approximation","type":"object","required":["categories","parameters"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"DFT meta-GGA functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["mgga"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Meta-GGA functional mixin","type":"object","anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-orbit coupling mixin","type":"object","properties":{"spinOrbitCoupling":{"type":"boolean"}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Dispersion correction mixin","type":"object","properties":{"dispersionCorrection":{"enum":["dft-d2","dft-d3","xdm","ts"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-polarization mixin","type":"object","properties":{"spinPolarization":{"enum":["collinear","non-collinear"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard model mixin","type":"object","properties":{"hubbardType":{"enum":["u"]}}}],"description":"Model parameters defined in-place or via model mixins","additionalProperties":true,"properties":{"functional":{"enum":["scan"]}}},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"models-directory/re","$schema":"http://json-schema.org/draft-07/schema#","title":"model regression","description":"machine learning model type/subtype schema","type":"object","required":["categories","parameters"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"regression model category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["re"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["ml"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["det"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["st"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"type":"object","description":"Model parameters defined in-place or via model mixins"},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"project","$schema":"http://json-schema.org/draft-07/schema#","title":"project schema","type":"object","properties":{"gid":{"description":"project GID","type":"number"},"clusterBasedChargeRates":{"description":"charge rates info for project","type":"array","items":{"type":"object","properties":{"rate":{"type":"number"},"timestamp":{"type":"number"},"hostname":{"type":"string"}}}},"isExternal":{"type":"boolean","default":false},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$id":"properties-directory/derived-properties","$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},{"$id":"properties-directory/electronic-configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"electronic configuration schema","type":"object","properties":{"charge":{"description":"total charge of the molecular system","type":"integer"},"multiplicity":{"description":"calculated as 2S+1, with S is the total spin angular momentum","type":"integer"}}},{"$id":"properties-directory/elemental/atomic-radius","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic radius","description":"atomic radius","type":"object","required":["name","value"],"properties":{"name":{"enum":["atomic_radius"]},"units":{"enum":["km","m","cm","mm","um","nm","angstrom","a.u.","bohr","pm"]},"value":{"type":"number"}}},{"$id":"properties-directory/elemental/electronegativity","$schema":"http://json-schema.org/draft-07/schema#","title":"electronegativity","description":"electronegativity for the element (Pauling scale)","type":"object","required":["name","value"],"properties":{"name":{"enum":["electronegativity"]},"value":{"type":"number"}}},{"$id":"properties-directory/elemental/ionization-potential","$schema":"http://json-schema.org/draft-07/schema#","title":"Ionization potential elemental property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["ionization_potential"]},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},"value":{"type":"number"}}},{"$id":"properties-directory/jupyter-notebook-endpoint","$schema":"http://json-schema.org/draft-07/schema#","title":"Jupyter notebook endpoint property schema","type":"object","required":["name","host","port","token"],"properties":{"name":{"enum":["jupyter_notebook_endpoint"]},"host":{"type":"string"},"port":{"type":"number"},"token":{"type":"string"}}},{"$id":"properties-directory/non-scalar/average-potential-profile","$schema":"http://json-schema.org/draft-07/schema#","title":"Average potential profile property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","type":"object","required":["label"],"properties":{"label":{"enum":["z coordinate"],"description":"label of an axis object","type":"string"},"units":{"enum":["km","m","cm","mm","um","nm","angstrom","a.u.","bohr","pm"],"description":"units for an axis","type":"string"}}},"yAxis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","type":"object","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"name":{"enum":["average_potential_profile"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/band-gaps","$schema":"http://json-schema.org/draft-07/schema#","title":"Band gaps property schema","description":"contains band gap values","type":"object","required":["name","values"],"properties":{"name":{"enum":["band_gaps"]},"values":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"band gap schema","type":"object","required":["type","value"],"properties":{"kpointConduction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"kpointValence":{"$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"eigenvalueConduction":{"description":"eigenvalue at k-point in conduction band","type":"number"},"eigenvalueValence":{"description":"eigenvalue at k-point in valence band","type":"number"},"spin":{"type":"number"},"type":{"type":"string","enum":["direct","indirect"]},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},"value":{"type":"number"}}}},"eigenvalues":{"type":"array","items":{"type":"object","properties":{"kpoint":{"$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"weight":{"type":"number"},"eigenvalues":{"type":"array","items":{"type":"object","properties":{"spin":{"type":"number"},"energies":{"type":"array"},"occupations":{"type":"array"}}}}}}}}},{"$id":"properties-directory/non-scalar/band-structure","$schema":"http://json-schema.org/draft-07/schema#","title":"Band structure property schema","type":"object","required":["name","spin","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["kpoints"],"description":"label of an axis object","type":"string"},"units":{"enum":["crystal","cartesian"],"default":"crystal","description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"name":{"enum":["band_structure"]},"spin":{"description":"spin of each band","type":"array","items":{"type":"number","enum":[0.5,-0.5]}},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/charge-density-profile","$schema":"http://json-schema.org/draft-07/schema#","title":"Charge density profile property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["z coordinate"],"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["charge density"],"description":"label of an axis object","type":"string"},"units":{"enum":["e/A"],"description":"units for an axis","type":"string"}}},"name":{"enum":["charge_density_profile"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/density-of-states","$schema":"http://json-schema.org/draft-07/schema#","title":"Density of states property schema","type":"object","required":["legend","name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["density of states"],"description":"label of an axis object","type":"string"},"units":{"enum":["states/unitcell"],"description":"units for an axis","type":"string"}}},"name":{"enum":["density_of_states"]},"legend":{"type":"array","items":{"type":"object","properties":{"element":{"description":"chemical element","type":"string"},"index":{"description":"index inside sub-array of atoms of the same element type","type":"integer"},"electronicState":{"description":"electronic character and shell of PDOS, such as `1s` or `s`, or `total`","type":"string","pattern":"^([1-5]{1})?(s|p|d|f|g).*$"},"spin":{"description":"spin of the electronic state","type":"number","enum":[0.5,-0.5]}}}},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/dielectric-tensor","$schema":"http://json-schema.org/draft-07/schema#","title":"dielectric tensor property schema","description":"The real and imaginary parts of the diagonal elements of the dieletric tensor","type":"object","required":["name","values"],"properties":{"name":{"enum":["dielectric_tensor"]},"values":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Dielectric Tensor","type":"object","required":["part","frequencies","components"],"description":"Schema for a function of frequency yielding a nx3 matrix","properties":{"part":{"description":"Real or imaginary part of the dielectric tensor component","type":"string","enum":["real","imaginary"]},"spin":{"type":"number"},"frequencies":{"description":"Frequencies","type":"array","items":{"type":"number"}},"components":{"description":"Matrix with 3 columns, e.g. x, y, z","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}}}}},{"$id":"properties-directory/non-scalar/file-content","$schema":"http://json-schema.org/draft-07/schema#","title":"File content property schema","type":"object","required":["name","filetype","objectData"],"properties":{"name":{"enum":["file_content"]},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string","enum":["image","text","csv"],"$comment":"isGenerative:true"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"}}},{"$id":"properties-directory/non-scalar/final-structure","$schema":"http://json-schema.org/draft-07/schema#","title":"Final structure property schema","type":"object","required":["name","isRelaxed","materialId"],"properties":{"name":{"enum":["final_structure"]},"isRelaxed":{"type":"boolean"},"materialId":{"description":"Material's identity","type":"string"}}},{"$id":"properties-directory/non-scalar/hubbard-u","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard U parameters property schema","description":"Hubbard U values in eV corresponding to atomic species, orbital and site number.","type":"object","required":["name","values","units"],"properties":{"name":{"enum":["hubbard_u"]},"units":{"enum":["eV"]},"values":{"type":"array","items":{"type":"object","required":["id","atomicSpecies","orbitalName","value"],"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}}}}},{"$id":"properties-directory/non-scalar/hubbard-v","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard V parameters property schema","description":"Hubbard V values corresponding to atomic pairs","type":"object","required":["name","units","values"],"properties":{"name":{"enum":["hubbard_v"]},"units":{"enum":["eV"]},"values":{"type":"array","items":{"type":"object","required":["id","id2","atomicSpecies","atomicSpecies2","value"],"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital pair numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"id2":{"type":"integer","description":"Site number or index in the lattice of second site"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"atomicSpecies2":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co2, O"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalName2":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"distance":{"type":"number","description":"Distance between two sites in Bohr."},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}}}}},{"$id":"properties-directory/non-scalar/hubbard-v-nn","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard V NN parameters property schema","description":"Hubbard V value in eV for nearest neighbors used in hp.x output parsing","type":"object","required":["name","units","values"],"properties":{"name":{"enum":["hubbard_v_nn"]},"units":{"enum":["eV"]},"values":{"type":"array","items":{"type":"object","required":["id","id2","atomicSpecies","atomicSpecies2","value"],"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital pair numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"id2":{"type":"integer","description":"Site number or index in the lattice of second site"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"atomicSpecies2":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co2, O"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalName2":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"distance":{"type":"number","description":"Distance between two sites in Bohr."},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}}}}},{"$id":"properties-directory/non-scalar/is-relaxed","$schema":"http://json-schema.org/draft-07/schema#","title":"Is relaxed property schema","type":"object","required":["name","value","materialId"],"properties":{"name":{"enum":["is_relaxed"]},"value":{"type":"boolean"},"materialId":{"description":"Material's identity","type":"string"}}},{"$id":"properties-directory/non-scalar/phonon-dispersions","$schema":"http://json-schema.org/draft-07/schema#","title":"Phonon band structure property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["qpoints"],"description":"label of an axis object","type":"string"},"units":{"enum":["crystal","cartesian"],"default":"crystal","description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["frequency"],"description":"label of an axis object","type":"string"},"units":{"enum":["cm-1","THz","meV"],"description":"units for an axis","type":"string"}}},"name":{"enum":["phonon_dispersions"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/phonon-dos","$schema":"http://json-schema.org/draft-07/schema#","title":"Phonon density of states property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["frequency"],"description":"label of an axis object","type":"string"},"units":{"enum":["cm-1","THz","meV"],"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["Phonon DOS"],"description":"label of an axis object","type":"string"},"units":{"enum":["states/cm-1","states/THz","states/meV"],"description":"units for an axis","type":"string"}}},"name":{"enum":["phonon_dos"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/potential-profile","$schema":"http://json-schema.org/draft-07/schema#","title":"Potential profile property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["z coordinate"],"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"name":{"enum":["potential_profile"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/reaction-energy-profile","$schema":"http://json-schema.org/draft-07/schema#","title":"Reaction energy profile property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["reaction coordinate"],"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"name":{"enum":["reaction_energy_profile"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/stress-tensor","$schema":"http://json-schema.org/draft-07/schema#","title":"Stress tensor property schema","type":"object","required":["name","value","units"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"name":{"enum":["stress_tensor"]},"units":{"enum":["kbar","pa"]}}},{"$id":"properties-directory/non-scalar/total-energy-contributions","$schema":"http://json-schema.org/draft-07/schema#","title":"Total energy contributions property schema","type":"object","required":["name"],"properties":{"temperatureEntropy":{"description":"product of temperature and configurational entropy","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["temperature_entropy"]},"value":{"type":"number"}}},"harris_foulkes":{"description":"non self-consitent energy based on an input charge density","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["harris_foulkes"]},"value":{"type":"number"}}},"smearing":{"description":"smearing energy","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["smearing"]},"value":{"type":"number"}}},"one_electron":{"description":"kinetic + pseudopotential energy","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["one_electron"]},"value":{"type":"number"}}},"hartree":{"description":"energy due to coulomb potential","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["hartree"]},"value":{"type":"number"}}},"exchange":{"description":"exchange energy","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["exchange"]},"value":{"type":"number"}}},"exchange_correlation":{"description":"exchange and correlation energy per particle","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["exchange_correlation"]},"value":{"type":"number"}}},"ewald":{"description":"summation of interaction energies at long length scales due to coloumbic interactions","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["ewald"]},"value":{"type":"number"}}},"alphaZ":{"description":"divergent electrostatic ion interaction in compensating electron gas","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["alphaZ"]},"value":{"type":"number"}}},"atomicEnergy":{"description":"kinetic energy of wavefunctions in the atomic limit","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["atomic_energy"]},"value":{"type":"number"}}},"eigenvalues":{"description":"sum of one electron energies of kinetic, electrostatic, and exchange correlation","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["eigenvalues"]},"value":{"type":"number"}}},"PAWDoubleCounting2":{"description":"double counting correction 2","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["PAW_double-counting_correction_2"]},"value":{"type":"number"}}},"PAWDoubleCounting3":{"description":"double counting correction 3","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["PAW_double-counting_correction_3"]},"value":{"type":"number"}}},"hartreeFock":{"description":"hartree-fock contribution","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["hartree_fock"]},"value":{"type":"number"}}},"name":{"enum":["total_energy_contributions"]},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]}}},{"$id":"properties-directory/non-scalar/vibrational-spectrum","$schema":"http://json-schema.org/draft-07/schema#","title":"Vibrational spectrum property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["frequency","wavenumber"],"description":"label of an axis object","type":"string"},"units":{"enum":["cm-1","THz","meV"],"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["Intensity","Absorbance","Absorption coefficient"],"description":"label of an axis object","type":"string"},"units":{"enum":["(debye/angstrom)^2","km/mol","m/mol","a.u."],"description":"units for an axis","type":"string"}}},"name":{"enum":["vibrational_spectrum"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/workflow","$schema":"http://json-schema.org/draft-07/schema#","title":"Workflow property schema","type":"object","required":["name","subworkflows","units"],"properties":{"name":{"enum":["workflow:pyml_predict"],"description":"entity name","type":"string"},"subworkflows":{"description":"Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Subworkflow","type":"object","required":["application","model","name","units"],"properties":{"units":{"description":"Contains the Units of the subworkflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow subworkflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","source","subtype","type"],"additionalProperties":true,"properties":{"type":{"const":"io","description":"type of the unit","type":"string"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO rest API input schema","type":"object","properties":{"endpoint":{"description":"rest API endpoint","type":"string"},"endpoint_options":{"description":"rest API endpoint options","type":"object"},"name":{"description":"the name of the variable in local scope to save the data under","type":"string"}},"required":["endpoint","endpoint_options"],"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database input/output schema","type":"object","oneOf":[{"properties":{"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["ids"],"additionalProperties":true},{"properties":{"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["collection","draft"],"additionalProperties":true}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["objectData"],"additionalProperties":true,"properties":{"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}]}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","type"],"additionalProperties":true,"properties":{"type":{"const":"reduce","description":"type of the unit","type":"string"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","statement","then","type"],"additionalProperties":true,"properties":{"type":{"const":"condition","description":"type of the unit","type":"string"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","name","statement","type"],"additionalProperties":true,"properties":{"type":{"const":"assertion","description":"type of the unit","type":"string"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","type"],"additionalProperties":true,"properties":{"type":{"const":"execution","description":"type of the unit","type":"string"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of the executable. e.g. pw.x","type":"string"},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","properties":{"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"input":{"description":"unit input (type to be specified by the application's execution unit)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","name","operand","type","value"],"additionalProperties":true,"properties":{"type":{"const":"assignment","description":"type of the unit","type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"scope":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","operation","operationType","type"],"additionalProperties":true,"properties":{"type":{"const":"processing","description":"type of the unit","type":"string"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"model":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base model","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"isDraft":{"description":"Defines whether to store the results/properties extracted in this unit to properties collection","type":"boolean","default":false},"_id":{"description":"subworkflow identity","type":"string"},"name":{"description":"Human-readable name of the subworkflow. e.g. Total-energy","type":"string"},"properties":{"description":"Array of characteristic properties calculated by this subworkflow","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","type":"string"}},"compute":{"$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}}}}},"units":{"description":"Contains the Units of the Workflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","source","subtype","type"],"additionalProperties":true,"properties":{"type":{"const":"io","description":"type of the unit","type":"string"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO rest API input schema","type":"object","properties":{"endpoint":{"description":"rest API endpoint","type":"string"},"endpoint_options":{"description":"rest API endpoint options","type":"object"},"name":{"description":"the name of the variable in local scope to save the data under","type":"string"}},"required":["endpoint","endpoint_options"],"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database input/output schema","type":"object","oneOf":[{"properties":{"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["ids"],"additionalProperties":true},{"properties":{"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["collection","draft"],"additionalProperties":true}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["objectData"],"additionalProperties":true,"properties":{"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}]}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","type"],"additionalProperties":true,"properties":{"type":{"const":"reduce","description":"type of the unit","type":"string"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","statement","then","type"],"additionalProperties":true,"properties":{"type":{"const":"condition","description":"type of the unit","type":"string"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","name","statement","type"],"additionalProperties":true,"properties":{"type":{"const":"assertion","description":"type of the unit","type":"string"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","type"],"additionalProperties":true,"properties":{"type":{"const":"execution","description":"type of the unit","type":"string"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of the executable. e.g. pw.x","type":"string"},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","properties":{"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"input":{"description":"unit input (type to be specified by the application's execution unit)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","name","operand","type","value"],"additionalProperties":true,"properties":{"type":{"const":"assignment","description":"type of the unit","type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"scope":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","operation","operationType","type"],"additionalProperties":true,"properties":{"type":{"const":"processing","description":"type of the unit","type":"string"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"map unit schema","type":"object","required":["flowchartId","input","type","workflowId"],"additionalProperties":true,"properties":{"type":{"const":"map","description":"type of the unit","type":"string"},"workflowId":{"description":"Id of workflow to run inside map","type":"string"},"input":{"description":"Input information for map.","type":"object","required":["target"],"properties":{"target":{"description":"Name of the target variable to substitute using the values below. e.g. K_POINTS","type":"string"},"scope":{"description":"Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.","type":"string"},"name":{"description":"Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.","type":"string"},"values":{"description":"Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution","type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"object"}]}},"useValues":{"type":"boolean"}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"subworkflow unit schema","type":"object","required":["type","flowchartId"],"additionalProperties":true,"properties":{"type":{"const":"subworkflow","description":"type of the unit","type":"string"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"properties":{"description":"Array of characteristic properties calculated by this workflow (TODO: add enums)","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","oneOf":[{"type":"string"},{"type":"object"}]}},"isUsingDataset":{"description":"Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab.","type":"boolean"},"workflows":{"description":"Array of workflows with the same schema as the current one.","type":"array","items":{"type":"object"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$id":"properties-directory/reusable/hubbard-parameters","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard parameters reusable schema","description":"Common properties for hubbard parameter schemas","type":"object","required":["values","units"],"properties":{"units":{"enum":["eV"]},"values":{"type":"array","items":{"type":"object","required":["id","id2","atomicSpecies","atomicSpecies2","value"],"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital pair numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"id2":{"type":"integer","description":"Site number or index in the lattice of second site"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"atomicSpecies2":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co2, O"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalName2":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"distance":{"type":"number","description":"Distance between two sites in Bohr."},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}}}}},{"$id":"properties-directory/scalar/electron-affinity","$schema":"http://json-schema.org/draft-07/schema#","title":"Electron affinity property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["electron_affinity"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/fermi-energy","$schema":"http://json-schema.org/draft-07/schema#","title":"Fermi energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["fermi_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/formation-energy","$schema":"http://json-schema.org/draft-07/schema#","title":"Formation energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["formation_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/ionization-potential","$schema":"http://json-schema.org/draft-07/schema#","title":"Ionization potential scalar property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["ionization_potential"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/pressure","$schema":"http://json-schema.org/draft-07/schema#","title":"Pressure property schema","description":"average pressure in unit cell","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["pressure"]},"units":{"enum":["kbar","pa"]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/reaction-energy-barrier","$schema":"http://json-schema.org/draft-07/schema#","title":"Reaction energy barrier property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["reaction_energy_barrier"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/surface-energy","$schema":"http://json-schema.org/draft-07/schema#","title":"Surface energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["surface_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/total-energy","$schema":"http://json-schema.org/draft-07/schema#","title":"Total energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["total_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/total-force","$schema":"http://json-schema.org/draft-07/schema#","title":"Total forces property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["total_force"]},"units":{"enum":["eV/bohr","eV/angstrom","Ry/a.u.","newton","kg*m/s^2","eV/a.u."]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/valence-band-offset","$schema":"http://json-schema.org/draft-07/schema#","title":"Valence band offset property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["valence_band_offset"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/zero-point-energy","$schema":"http://json-schema.org/draft-07/schema#","title":"Zero point energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["zero_point_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/structural/atomic-forces","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic forces property schema","description":"coordinates of atoms by ids, vector, unitless","type":"object","required":["name","units","values"],"properties":{"name":{"enum":["atomic_forces"]},"values":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vectors schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vector schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"enum":["eV/bohr","eV/angstrom","Ry/a.u.","newton","kg*m/s^2","eV/a.u."]}}},{"$id":"properties-directory/structural/basis/atomic-constraint","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraint schema","description":"constraint of atoms by ids, used to constraint the position etc.","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector boolean 3d schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 boolean elements schema","type":"array","items":{"type":"boolean"},"minItems":3,"maxItems":3}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}},{"$id":"properties-directory/structural/basis/atomic-constraints","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraints schema","description":"atomic constraints schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraint schema","description":"constraint of atoms by ids, used to constraint the position etc.","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector boolean 3d schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 boolean elements schema","type":"array","items":{"type":"boolean"},"minItems":3,"maxItems":3}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}},{"$id":"properties-directory/structural/basis/atomic-constraints-property","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraints property schema","description":"atomic constraints property schema (as stored in a database)","type":"object","required":["name","values"],"properties":{"name":{"enum":["atomic_constraints"]},"values":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraints schema","description":"atomic constraints schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraint schema","description":"constraint of atoms by ids, used to constraint the position etc.","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector boolean 3d schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 boolean elements schema","type":"array","items":{"type":"boolean"},"minItems":3,"maxItems":3}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"properties-directory/structural/basis/atomic-coordinate","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}},{"$id":"properties-directory/structural/basis/atomic-coordinates","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},{"$id":"properties-directory/structural/basis/atomic-element","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}},{"$id":"properties-directory/structural/basis/atomic-elements","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},{"$id":"properties-directory/structural/basis/atomic-label","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}},{"$id":"properties-directory/structural/basis/atomic-labels","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}},{"$id":"properties-directory/structural/basis/bonds","$schema":"http://json-schema.org/draft-07/schema#","title":"bonds schema","type":"array","uniqueItems":true,"items":{"type":"object","properties":{"atomPair":{"description":"indices of the two connected atoms","type":"array","minItems":2,"maxItems":2,"$schema":"http://json-schema.org/draft-07/schema#","title":"array of ids","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","type":"object","required":["id"],"properties":{"id":{"description":"integer id of this entry","type":"integer"}}}},"bondType":{"type":"string","enum":["single","double","triple","quadruple","aromatic","tautomeric","dative","other"]}}}},{"$id":"properties-directory/structural/basis/boundary-conditions","$schema":"http://json-schema.org/draft-07/schema#","title":"boundary conditions property schema","description":"boundary conditions property schema (as stored in a database)","type":"object","required":["name","type","offset"],"properties":{"name":{"enum":["boundary_conditions"]},"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}},{"$id":"properties-directory/structural/basis/units-enum","$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},{"$id":"properties-directory/structural/basis","$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"properties-directory/structural/density","$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$id":"properties-directory/structural/elemental-ratio","$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$id":"properties-directory/structural/inchi","$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$id":"properties-directory/structural/inchi-key","$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}},{"$id":"properties-directory/structural/lattice/type-enum","$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},{"$id":"properties-directory/structural/lattice/type-extended-enum","$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type extended enum","type":"string","enum":["BCC","BCT-1","BCT-2","CUB","FCC","HEX","MCL","MCLC-1","MCLC-2","MCLC-3","MCLC-4","MCLC-5","ORC","ORCC","ORCF-1","ORCF-2","ORCF-3","ORCI","RHL-1","RHL-2","TET","TRI_1a","TRI_1b","TRI_2a","TRI_2b"]},{"$id":"properties-directory/structural/lattice/units/angle-enum","$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"},{"$id":"properties-directory/structural/lattice/units/length-enum","$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},{"$id":"properties-directory/structural/lattice/units","$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}},{"$id":"properties-directory/structural/lattice/vectors/units-enum","$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"},{"$id":"properties-directory/structural/lattice/vectors","$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},{"$id":"properties-directory/structural/lattice","$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},{"$id":"properties-directory/structural/magnetic-moments","$schema":"http://json-schema.org/draft-07/schema#","title":"Magnetic moments property schema","description":"magnetization on each ion","type":"object","required":["name","values","units"],"properties":{"name":{"enum":["magnetic_moments"]},"values":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vectors schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vector schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"enum":["uB"]}}},{"$id":"properties-directory/structural/molecular-pattern","$schema":"http://json-schema.org/draft-07/schema#","title":"molecular pattern schema","type":"array","items":{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"functional group pattern schema","type":"object","properties":{"name":{"enum":["functional_group"]},"atoms":{"type":"array","$schema":"http://json-schema.org/draft-07/schema#","title":"array of ids","description":"array of objects containing integer id each","items":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","required":["id"],"properties":{"isConnector":{"description":"whether atom connects to atoms outside of functional group.","type":"boolean"},"id":{"description":"integer id of this entry","type":"integer"}}}},"SMARTS":{"description":"SMARTS string for classification of FG; https://en.wikipedia.org/wiki/SMILES_arbitrary_target_specification","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"ring pattern schema","type":"object","properties":{"name":{"enum":["ring"]},"atoms":{"type":"array","$schema":"http://json-schema.org/draft-07/schema#","title":"array of ids","description":"array of objects containing integer id each","items":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","required":["id"],"properties":{"isConnector":{"description":"whether atom connects to atoms outside of functional group.","type":"boolean"},"id":{"description":"integer id of this entry","type":"integer"}}}},"isAromatic":{"type":"boolean"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"special bond pattern schema","type":"object","description":"Any bonding interaction that cannot be described by simple 2-atom picture, e.g. 3-center-2-electron bond in diborane","properties":{"name":{"enum":["special_bond"]},"atoms":{"type":"array","$schema":"http://json-schema.org/draft-07/schema#","title":"array of ids","description":"array of objects containing integer id each","items":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","required":["id"],"properties":{"isConnector":{"description":"whether atom connects to atoms outside of functional group.","type":"boolean"},"id":{"description":"integer id of this entry","type":"integer"}}}}},"required":["name"]}]}},{"$id":"properties-directory/structural/p-norm","$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$id":"properties-directory/structural/patterns/functional-group","$schema":"http://json-schema.org/draft-07/schema#","title":"functional group pattern schema","type":"object","required":["name"],"properties":{"name":{"enum":["functional_group"]},"atoms":{"type":"array","$schema":"http://json-schema.org/draft-07/schema#","title":"array of ids","description":"array of objects containing integer id each","items":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","required":["id"],"properties":{"isConnector":{"description":"whether atom connects to atoms outside of functional group.","type":"boolean"},"id":{"description":"integer id of this entry","type":"integer"}}}},"SMARTS":{"description":"SMARTS string for classification of FG; https://en.wikipedia.org/wiki/SMILES_arbitrary_target_specification","type":"string"}}},{"$id":"properties-directory/structural/patterns/ring","$schema":"http://json-schema.org/draft-07/schema#","title":"ring pattern schema","type":"object","required":["name"],"properties":{"name":{"enum":["ring"]},"atoms":{"type":"array","$schema":"http://json-schema.org/draft-07/schema#","title":"array of ids","description":"array of objects containing integer id each","items":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","required":["id"],"properties":{"isConnector":{"description":"whether atom connects to atoms outside of functional group.","type":"boolean"},"id":{"description":"integer id of this entry","type":"integer"}}}},"isAromatic":{"type":"boolean"}}},{"$id":"properties-directory/structural/patterns/special-bond","$schema":"http://json-schema.org/draft-07/schema#","title":"special bond pattern schema","type":"object","description":"Any bonding interaction that cannot be described by simple 2-atom picture, e.g. 3-center-2-electron bond in diborane","required":["name"],"properties":{"name":{"enum":["special_bond"]},"atoms":{"type":"array","$schema":"http://json-schema.org/draft-07/schema#","title":"array of ids","description":"array of objects containing integer id each","items":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","required":["id"],"properties":{"isConnector":{"description":"whether atom connects to atoms outside of functional group.","type":"boolean"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"properties-directory/structural/symmetry","$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$id":"properties-directory/structural/volume","$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$id":"properties-directory/workflow/convergence/electronic","$schema":"http://json-schema.org/draft-07/schema#","title":"Convergence electronic property schema","type":"object","required":["data","name","units"],"properties":{"name":{"enum":["convergence_electronic"]},"units":{"enum":["eV","Ry","hartree"]},"data":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},{"$id":"properties-directory/workflow/convergence/ionic","$schema":"http://json-schema.org/draft-07/schema#","title":"Convergence ionic property schema","type":"object","required":["data","name","units"],"properties":{"name":{"enum":["convergence_ionic"]},"tolerance":{"description":"for ionic convergence tolerance shows force tolerance"},"units":{"description":"units for force tolerance","enum":["eV"]},"data":{"type":"array","description":"energetic and structural information","items":{"type":"object","required":["energy"],"properties":{"energy":{"description":"converged electronic energy for this structure (last in `electronic`)","type":"number"},"structure":{"description":"TODO: structural information at each step to be here","type":"object"},"electronic":{"description":"data about electronic at this ionic step","type":"object","properties":{"units":{"description":"units for force tolerance","enum":["eV","Ry","hartree"]},"data":{"type":"array","items":{"type":"number"}}}}}}}}},{"$id":"properties-directory/workflow/convergence/kpoint","$schema":"http://json-schema.org/draft-07/schema#","title":"convergence schema for converging a property wrt kpoints","type":"object","required":["tolerance","units","data"],"properties":{"tolerance":{"description":"tolerance for the property under investigation"},"units":{"description":"units for the property under investigation","type":"string"},"property":{"description":"name of the property under investigation","type":"string"},"data":{"type":"array","description":"kpoint grid and property information","items":{"type":"object","required":["value","grid"],"properties":{"value":{"description":"value of the property at this step"},"grid":{"description":"information about the kpoint grid","type":"object"},"spacing":{"description":"optional kpoint spacing information","type":"number"}}}}}},{"$id":"property/holder","$schema":"http://json-schema.org/draft-07/schema#","title":"Property holder schema","type":"object","required":["data","source","repetition","exabyteId"],"properties":{"group":{"description":"property group, e.g. qe:dft:gga:pbe","type":"string"},"data":{"description":"container of the information, specific to each property","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Valence band offset property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["valence_band_offset"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Zero point energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["zero_point_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Pressure property schema","description":"average pressure in unit cell","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["pressure"]},"units":{"enum":["kbar","pa"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reaction energy barrier property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["reaction_energy_barrier"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Surface energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["surface_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Total energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["total_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Total forces property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["total_force"]},"units":{"enum":["eV/bohr","eV/angstrom","Ry/a.u.","newton","kg*m/s^2","eV/a.u."]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Fermi energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["fermi_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Ionization potential scalar property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["ionization_potential"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Stress tensor property schema","type":"object","properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"name":{"enum":["stress_tensor"]},"units":{"enum":["kbar","pa"]}},"required":["name","value","units"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Band gaps property schema","description":"contains band gap values","type":"object","properties":{"name":{"enum":["band_gaps"]},"values":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"band gap schema","type":"object","required":["type","value"],"properties":{"kpointConduction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"kpointValence":{"$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"eigenvalueConduction":{"description":"eigenvalue at k-point in conduction band","type":"number"},"eigenvalueValence":{"description":"eigenvalue at k-point in valence band","type":"number"},"spin":{"type":"number"},"type":{"type":"string","enum":["direct","indirect"]},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},"value":{"type":"number"}}}},"eigenvalues":{"type":"array","items":{"type":"object","properties":{"kpoint":{"$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"weight":{"type":"number"},"eigenvalues":{"type":"array","items":{"type":"object","properties":{"spin":{"type":"number"},"energies":{"type":"array"},"occupations":{"type":"array"}}}}}}}},"required":["name","values"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Band structure property schema","type":"object","required":["name","spin","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["kpoints"],"description":"label of an axis object","type":"string"},"units":{"enum":["crystal","cartesian"],"default":"crystal","description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"name":{"enum":["band_structure"]},"spin":{"description":"spin of each band","type":"array","items":{"type":"number","enum":[0.5,-0.5]}},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Phonon band structure property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["qpoints"],"description":"label of an axis object","type":"string"},"units":{"enum":["crystal","cartesian"],"default":"crystal","description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["frequency"],"description":"label of an axis object","type":"string"},"units":{"enum":["cm-1","THz","meV"],"description":"units for an axis","type":"string"}}},"name":{"enum":["phonon_dispersions"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Total energy contributions property schema","type":"object","properties":{"temperatureEntropy":{"description":"product of temperature and configurational entropy","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["temperature_entropy"]},"value":{"type":"number"}}},"harris_foulkes":{"description":"non self-consitent energy based on an input charge density","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["harris_foulkes"]},"value":{"type":"number"}}},"smearing":{"description":"smearing energy","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["smearing"]},"value":{"type":"number"}}},"one_electron":{"description":"kinetic + pseudopotential energy","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["one_electron"]},"value":{"type":"number"}}},"hartree":{"description":"energy due to coulomb potential","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["hartree"]},"value":{"type":"number"}}},"exchange":{"description":"exchange energy","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["exchange"]},"value":{"type":"number"}}},"exchange_correlation":{"description":"exchange and correlation energy per particle","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["exchange_correlation"]},"value":{"type":"number"}}},"ewald":{"description":"summation of interaction energies at long length scales due to coloumbic interactions","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["ewald"]},"value":{"type":"number"}}},"alphaZ":{"description":"divergent electrostatic ion interaction in compensating electron gas","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["alphaZ"]},"value":{"type":"number"}}},"atomicEnergy":{"description":"kinetic energy of wavefunctions in the atomic limit","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["atomic_energy"]},"value":{"type":"number"}}},"eigenvalues":{"description":"sum of one electron energies of kinetic, electrostatic, and exchange correlation","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["eigenvalues"]},"value":{"type":"number"}}},"PAWDoubleCounting2":{"description":"double counting correction 2","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["PAW_double-counting_correction_2"]},"value":{"type":"number"}}},"PAWDoubleCounting3":{"description":"double counting correction 3","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["PAW_double-counting_correction_3"]},"value":{"type":"number"}}},"hartreeFock":{"description":"hartree-fock contribution","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["hartree_fock"]},"value":{"type":"number"}}},"name":{"enum":["total_energy_contributions"]},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Phonon density of states property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["frequency"],"description":"label of an axis object","type":"string"},"units":{"enum":["cm-1","THz","meV"],"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["Phonon DOS"],"description":"label of an axis object","type":"string"},"units":{"enum":["states/cm-1","states/THz","states/meV"],"description":"units for an axis","type":"string"}}},"name":{"enum":["phonon_dos"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Potential profile property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["z coordinate"],"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"name":{"enum":["potential_profile"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reaction energy profile property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["reaction coordinate"],"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"name":{"enum":["reaction_energy_profile"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Density of states property schema","type":"object","required":["legend","name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["density of states"],"description":"label of an axis object","type":"string"},"units":{"enum":["states/unitcell"],"description":"units for an axis","type":"string"}}},"name":{"enum":["density_of_states"]},"legend":{"type":"array","items":{"type":"object","properties":{"element":{"description":"chemical element","type":"string"},"index":{"description":"index inside sub-array of atoms of the same element type","type":"integer"},"electronicState":{"description":"electronic character and shell of PDOS, such as `1s` or `s`, or `total`","type":"string","pattern":"^([1-5]{1})?(s|p|d|f|g).*$"},"spin":{"description":"spin of the electronic state","type":"number","enum":[0.5,-0.5]}}}},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"dielectric tensor property schema","description":"The real and imaginary parts of the diagonal elements of the dieletric tensor","type":"object","properties":{"name":{"enum":["dielectric_tensor"]},"values":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Dielectric Tensor","type":"object","required":["part","frequencies","components"],"description":"Schema for a function of frequency yielding a nx3 matrix","properties":{"part":{"description":"Real or imaginary part of the dielectric tensor component","type":"string","enum":["real","imaginary"]},"spin":{"type":"number"},"frequencies":{"description":"Frequencies","type":"array","items":{"type":"number"}},"components":{"description":"Matrix with 3 columns, e.g. x, y, z","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}}}},"required":["name","values"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"File content property schema","type":"object","required":["name","filetype","objectData"],"properties":{"name":{"enum":["file_content"]},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string","enum":["image","text","csv"],"$comment":"isGenerative:true"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard U parameters property schema","description":"Hubbard U values in eV corresponding to atomic species, orbital and site number.","type":"object","properties":{"name":{"enum":["hubbard_u"]},"units":{"enum":["eV"]},"values":{"type":"array","items":{"type":"object","required":["id","atomicSpecies","orbitalName","value"],"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}}}},"required":["name","values","units"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard V parameters property schema","description":"Hubbard V values corresponding to atomic pairs","type":"object","required":["name","units","values"],"properties":{"name":{"enum":["hubbard_v"]},"units":{"enum":["eV"]},"values":{"type":"array","items":{"type":"object","required":["id","id2","atomicSpecies","atomicSpecies2","value"],"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital pair numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"id2":{"type":"integer","description":"Site number or index in the lattice of second site"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"atomicSpecies2":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co2, O"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalName2":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"distance":{"type":"number","description":"Distance between two sites in Bohr."},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard V NN parameters property schema","description":"Hubbard V value in eV for nearest neighbors used in hp.x output parsing","type":"object","required":["name","units","values"],"properties":{"name":{"enum":["hubbard_v_nn"]},"units":{"enum":["eV"]},"values":{"type":"array","items":{"type":"object","required":["id","id2","atomicSpecies","atomicSpecies2","value"],"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital pair numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"id2":{"type":"integer","description":"Site number or index in the lattice of second site"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"atomicSpecies2":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co2, O"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalName2":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"distance":{"type":"number","description":"Distance between two sites in Bohr."},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Average potential profile property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","type":"object","required":["label"],"properties":{"label":{"enum":["z coordinate"],"description":"label of an axis object","type":"string"},"units":{"enum":["km","m","cm","mm","um","nm","angstrom","a.u.","bohr","pm"],"description":"units for an axis","type":"string"}}},"yAxis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","type":"object","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"name":{"enum":["average_potential_profile"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Charge density profile property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["z coordinate"],"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["charge density"],"description":"label of an axis object","type":"string"},"units":{"enum":["e/A"],"description":"units for an axis","type":"string"}}},"name":{"enum":["charge_density_profile"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Workflow property schema","type":"object","required":["name","subworkflows","units"],"properties":{"name":{"enum":["workflow:pyml_predict"],"description":"entity name","type":"string"},"subworkflows":{"description":"Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Subworkflow","type":"object","required":["application","model","name","units"],"properties":{"units":{"description":"Contains the Units of the subworkflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow subworkflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","source","subtype","type"],"additionalProperties":true,"properties":{"type":{"const":"io","description":"type of the unit","type":"string"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO rest API input schema","type":"object","properties":{"endpoint":{"description":"rest API endpoint","type":"string"},"endpoint_options":{"description":"rest API endpoint options","type":"object"},"name":{"description":"the name of the variable in local scope to save the data under","type":"string"}},"required":["endpoint","endpoint_options"],"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database input/output schema","type":"object","oneOf":[{"properties":{"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["ids"],"additionalProperties":true},{"properties":{"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["collection","draft"],"additionalProperties":true}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["objectData"],"additionalProperties":true,"properties":{"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}]}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","type"],"additionalProperties":true,"properties":{"type":{"const":"reduce","description":"type of the unit","type":"string"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","statement","then","type"],"additionalProperties":true,"properties":{"type":{"const":"condition","description":"type of the unit","type":"string"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","name","statement","type"],"additionalProperties":true,"properties":{"type":{"const":"assertion","description":"type of the unit","type":"string"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","type"],"additionalProperties":true,"properties":{"type":{"const":"execution","description":"type of the unit","type":"string"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of the executable. e.g. pw.x","type":"string"},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","properties":{"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"input":{"description":"unit input (type to be specified by the application's execution unit)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","name","operand","type","value"],"additionalProperties":true,"properties":{"type":{"const":"assignment","description":"type of the unit","type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"scope":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","operation","operationType","type"],"additionalProperties":true,"properties":{"type":{"const":"processing","description":"type of the unit","type":"string"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"model":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base model","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"isDraft":{"description":"Defines whether to store the results/properties extracted in this unit to properties collection","type":"boolean","default":false},"_id":{"description":"subworkflow identity","type":"string"},"name":{"description":"Human-readable name of the subworkflow. e.g. Total-energy","type":"string"},"properties":{"description":"Array of characteristic properties calculated by this subworkflow","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","type":"string"}},"compute":{"$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}}}}},"units":{"description":"Contains the Units of the Workflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","source","subtype","type"],"additionalProperties":true,"properties":{"type":{"const":"io","description":"type of the unit","type":"string"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO rest API input schema","type":"object","properties":{"endpoint":{"description":"rest API endpoint","type":"string"},"endpoint_options":{"description":"rest API endpoint options","type":"object"},"name":{"description":"the name of the variable in local scope to save the data under","type":"string"}},"required":["endpoint","endpoint_options"],"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database input/output schema","type":"object","oneOf":[{"properties":{"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["ids"],"additionalProperties":true},{"properties":{"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["collection","draft"],"additionalProperties":true}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["objectData"],"additionalProperties":true,"properties":{"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}]}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","type"],"additionalProperties":true,"properties":{"type":{"const":"reduce","description":"type of the unit","type":"string"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","statement","then","type"],"additionalProperties":true,"properties":{"type":{"const":"condition","description":"type of the unit","type":"string"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","name","statement","type"],"additionalProperties":true,"properties":{"type":{"const":"assertion","description":"type of the unit","type":"string"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","type"],"additionalProperties":true,"properties":{"type":{"const":"execution","description":"type of the unit","type":"string"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of the executable. e.g. pw.x","type":"string"},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","properties":{"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"input":{"description":"unit input (type to be specified by the application's execution unit)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","name","operand","type","value"],"additionalProperties":true,"properties":{"type":{"const":"assignment","description":"type of the unit","type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"scope":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","operation","operationType","type"],"additionalProperties":true,"properties":{"type":{"const":"processing","description":"type of the unit","type":"string"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"map unit schema","type":"object","required":["flowchartId","input","type","workflowId"],"additionalProperties":true,"properties":{"type":{"const":"map","description":"type of the unit","type":"string"},"workflowId":{"description":"Id of workflow to run inside map","type":"string"},"input":{"description":"Input information for map.","type":"object","required":["target"],"properties":{"target":{"description":"Name of the target variable to substitute using the values below. e.g. K_POINTS","type":"string"},"scope":{"description":"Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.","type":"string"},"name":{"description":"Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.","type":"string"},"values":{"description":"Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution","type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"object"}]}},"useValues":{"type":"boolean"}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"subworkflow unit schema","type":"object","required":["type","flowchartId"],"additionalProperties":true,"properties":{"type":{"const":"subworkflow","description":"type of the unit","type":"string"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"properties":{"description":"Array of characteristic properties calculated by this workflow (TODO: add enums)","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","oneOf":[{"type":"string"},{"type":"object"}]}},"isUsingDataset":{"description":"Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab.","type":"boolean"},"workflows":{"description":"Array of workflows with the same schema as the current one.","type":"array","items":{"type":"object"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Magnetic moments property schema","description":"magnetization on each ion","type":"object","properties":{"name":{"enum":["magnetic_moments"]},"values":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vectors schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vector schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"enum":["uB"]}},"required":["name","values","units"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic forces property schema","description":"coordinates of atoms by ids, vector, unitless","type":"object","properties":{"name":{"enum":["atomic_forces"]},"values":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vectors schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vector schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"enum":["eV/bohr","eV/angstrom","Ry/a.u.","newton","kg*m/s^2","eV/a.u."]}},"required":["name","units","values"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Convergence electronic property schema","type":"object","properties":{"name":{"enum":["convergence_electronic"]},"units":{"enum":["eV","Ry","hartree"]},"data":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["data","name","units"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Convergence ionic property schema","type":"object","properties":{"name":{"enum":["convergence_ionic"]},"tolerance":{"description":"for ionic convergence tolerance shows force tolerance"},"units":{"description":"units for force tolerance","enum":["eV"]},"data":{"type":"array","description":"energetic and structural information","items":{"type":"object","required":["energy"],"properties":{"energy":{"description":"converged electronic energy for this structure (last in `electronic`)","type":"number"},"structure":{"description":"TODO: structural information at each step to be here","type":"object"},"electronic":{"description":"data about electronic at this ionic step","type":"object","properties":{"units":{"description":"units for force tolerance","enum":["eV","Ry","hartree"]},"data":{"type":"array","items":{"type":"number"}}}}}}}},"required":["data","name","units"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Is relaxed property schema","type":"object","properties":{"name":{"enum":["is_relaxed"]},"value":{"type":"boolean"},"materialId":{"description":"Material's identity","type":"string"}},"required":["name","value","materialId"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Final structure property schema","type":"object","properties":{"name":{"enum":["final_structure"]},"isRelaxed":{"type":"boolean"},"materialId":{"description":"Material's identity","type":"string"}},"required":["name","isRelaxed","materialId"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Jupyter notebook endpoint property schema","type":"object","properties":{"name":{"enum":["jupyter_notebook_endpoint"]},"host":{"type":"string"},"port":{"type":"number"},"token":{"type":"string"}},"required":["name","host","port","token"]}],"discriminator":{"propertyName":"name"}},"source":{"type":"object","required":["type","info"],"properties":{"type":{"description":"Type of the material property's source.","type":"string"},"info":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","required":["jobId","unitId"],"properties":{"jobId":{"description":"Job's identity","type":"string"},"unitId":{"description":"Id of the unit that extracted the result","type":"string"}}}}},"exabyteId":{"description":"Id of the corresponding item in the entity bank that this property is obtained for","type":"array","items":{"type":"string"}},"precision":{"type":"object","properties":{"value":{"type":"number"},"metric":{"type":"string"}}},"systemTags":{"description":"property system tags, marks property system characteristics, values refined or best (could be both)","type":"array","items":{"type":"string","enum":["isRefined","isBest"]}},"repetition":{"type":"number"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"}}},{"$id":"property/meta-holder","$schema":"http://json-schema.org/draft-07/schema#","title":"Meta property holder schema","type":"object","required":["data","source"],"properties":{"data":{"description":"container of the information, specific to each property","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"File data item","type":"object","properties":{"element":{"type":"string","description":"chemical element"},"hash":{"type":"string","description":"MD5 hash of the pseudopotential file"},"type":{"enum":["us","nc","nc-fr","paw","coulomb"]},"source":{"type":"string","description":"explains where this came from"},"version":{"type":"string","description":"explains the version of where this came from"},"exchangeCorrelation":{"type":"object","properties":{"approximation":{"description":"DFT approximation","type":"string"},"functional":{"description":"Exchange correlation functional","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"}}},"valenceConfiguration":{"type":"array","description":"contains pseudo orbital information, including orbital names and occupations","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic orbital schema","type":"object","properties":{"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalIndex":{"type":"integer","minimum":1},"principalNumber":{"type":"integer","minimum":1,"maximum":7},"angularMomentum":{"type":"integer","minimum":0,"maximum":3},"occupation":{"type":"number","description":"Shell occupation","minimum":0,"maximum":14}}}},"path":{"type":"string","description":"location of the pseudopotential file on filesystem"},"apps":{"type":"array","description":"The names of the simulation engines that can use this pseudopotential, e.g. espresso","items":{"type":"string"}},"filename":{"type":"string","description":"filename of pseudopotential file on filesystem"},"name":{"type":"string","description":"name of the data category","enum":["pseudopotential"]},"cutoffs":{"type":"object","description":"Suggested cutoff values for wave function and charge density.","additionalProperties":false,"properties":{"wavefunction":{"type":"array","description":"Energy cutoff values for wavefunction plane wave expansion.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}}},"density":{"type":"array","description":"Energy cutoff values for charge density plane wave expansion.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}}}}}},"required":["element","type","exchangeCorrelation","source","path","apps","name","hash"]}]},"source":{"type":"object","required":["type"],"properties":{"type":{"description":"Type of the material property's source.","type":"string"},"info":{"type":"object"}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"}}},{"$id":"property/proto-holder","$schema":"http://json-schema.org/draft-07/schema#","title":"Proto property holder schema","type":"object","required":["data","source"],"properties":{"data":{"description":"container of the information, specific to each property","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraints property schema","description":"atomic constraints property schema (as stored in a database)","type":"object","properties":{"name":{"enum":["atomic_constraints"]},"values":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraints schema","description":"atomic constraints schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraint schema","description":"constraint of atoms by ids, used to constraint the position etc.","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector boolean 3d schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 boolean elements schema","type":"array","items":{"type":"boolean"},"minItems":3,"maxItems":3}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}},"required":["name","values"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"boundary conditions property schema","description":"boundary conditions property schema (as stored in a database)","type":"object","properties":{"name":{"enum":["boundary_conditions"]},"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}},"required":["name","type","offset"]}]},"source":{"type":"object","required":["type","info"],"properties":{"type":{"description":"Type of the material property's source.","type":"string"},"info":{"type":"object","properties":{"materialId":{"type":"string"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"}}},{"$id":"property/source","$schema":"http://json-schema.org/draft-07/schema#","title":"Property source schema","type":"object","required":["info"],"properties":{"type":{"description":"Type of the material property's source.","type":"string"},"url":{"description":"Internet address of the reference.","type":"string"},"info":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"jobId":{"description":"Job's identity","type":"string"},"unitId":{"description":"Id of the unit that extracted the result","type":"string"}},"required":["jobId","unitId"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"info for characteristic obtained by experiment","type":"object","properties":{"type":{"enum":["experiment"]},"authors":{"description":"experiment authors","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"title":{"type":"string","description":"experiment title"},"method":{"type":"string","description":"method used in experiment"},"conditions":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition schema","type":"object","required":["name"],"properties":{"units":{"description":"condition unit","type":"string"},"scalar":{"description":"array of condition values","type":"array","items":{"type":"object","properties":{"value":{"type":"string"}}}},"name":{"description":"human-readable name of the condition","type":"string"}}}},"location":{"$schema":"http://json-schema.org/draft-07/schema#","title":"location schema","type":"object","required":["latitude","longitude"],"properties":{"latitude":{"description":"location latitude","type":"number"},"longitude":{"description":"location longitude","type":"number"}}},"timestamp":{"description":"epoch time.","type":"number"},"note":{"description":"Note about experiment","type":"string"},"references":{"type":"array","description":"references to literature articles","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}}}},"required":["conditions","authors","title","method","timestamp"]}]}}},{"$id":"software/application","$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$id":"software/executable","$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of the executable. e.g. pw.x","type":"string"},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},{"$id":"software/flavor","$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","properties":{"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},{"$id":"software/template","$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["content","name"],"properties":{"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"isManuallyChanged":{"type":"boolean"},"name":{"description":"Input file name. e.g. pw_scf.in","type":"string"},"content":{"description":"Content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"}}},{"$id":"software-directory/modeling/deepmd","$schema":"http://json-schema.org/draft-07/schema#","title":"DeePMD app schema","type":"object","additionalProperties":true,"properties":{"name":{"enum":["deepmd"],"description":"entity name","type":"string"},"summary":{"enum":["DeePMD is a deep learning package that is based on neural network fitted first-principles data for many-body potential energy representation and molecular dynamics"],"description":"Application's short description.","type":"string"},"version":{"enum":["2.0.2"],"description":"Application version. e.g. 5.3.5","type":"string"},"exec":{"enum":["dp","lmp","python"]},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$id":"software-directory/modeling/espresso/arguments","$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},{"$id":"software-directory/modeling/espresso","$schema":"http://json-schema.org/draft-07/schema#","title":"espresso app schema","type":"object","properties":{"name":{"enum":["espresso"]},"summary":{"enum":["Quantum Espresso"]},"version":{"enum":["5.2.1","5.4.0","6.0.0","6.3","6.4.1","6.5.0","6.6.0","6.7.0","6.8.0","7.0","7.2","7.3"]}}},{"$id":"software-directory/modeling/nwchem","$schema":"http://json-schema.org/draft-07/schema#","title":"NWChem","type":"object","additionalProperties":true,"properties":{"name":{"enum":["NWChem"],"description":"entity name","type":"string"},"summary":{"enum":["NWChem: a comprehensive and scalable open-source solution for large scale molecular simulations"],"description":"Application's short description.","type":"string"},"version":{"enum":["6.6","7.0.2"],"description":"Application version. e.g. 5.3.5","type":"string"},"exec":{"enum":["nwchem"]},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$id":"software-directory/modeling/unit/execution","$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema for physics-based simulation engines (defined using espresso as example)","type":"object","required":["application","flowchartId","input","type"],"additionalProperties":true,"properties":{"type":{"const":"execution","description":"type of the unit","type":"string"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of the executable. e.g. pw.x","type":"string"},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","properties":{"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"input":{"description":"unit input (type to be specified by the application's execution unit)","title":"execution unit input schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema for physics-based simulation engines","type":"object","properties":{"name":{"description":"Input file name. e.g. pw_scf.in","type":"string"},"content":{"description":"Content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"}},"required":["name","content"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}},"additionalProperties":false}]}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$id":"software-directory/modeling/vasp","$schema":"http://json-schema.org/draft-07/schema#","title":"vienna ab-inito simulation package","type":"object","additionalProperties":true,"properties":{"name":{"enum":["vasp"],"description":"entity name","type":"string"},"summary":{"enum":["vienna ab-initio simulation package"],"description":"Application's short description.","type":"string"},"flavor":{"enum":["vasp","vasp_nscf","vasp_bands"]},"version":{"enum":["5.3.5"],"description":"Application version. e.g. 5.3.5","type":"string"},"exec":{"enum":["vasp"]},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$id":"software-directory/scripting/jupyter-lab","$schema":"http://json-schema.org/draft-07/schema#","title":"Jupyter Lab Application Schema","type":"object","additionalProperties":true,"properties":{"name":{"enum":["jupyterLab"],"description":"entity name","type":"string"},"flavor":{"enum":["notebook"]},"summary":{"enum":["Jupyter Lab"],"description":"Application's short description.","type":"string"},"version":{"enum":["0.33.12"],"description":"Application version. e.g. 5.3.5","type":"string"},"exec":{"enum":["jupyter"]},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$id":"software-directory/scripting/python","$schema":"http://json-schema.org/draft-07/schema#","title":"Python Programing Language Schema","type":"object","additionalProperties":true,"properties":{"name":{"enum":["python"],"description":"entity name","type":"string"},"flavor":{"enum":["python2","python3"]},"summary":{"enum":["Python Script"],"description":"Application's short description.","type":"string"},"version":{"enum":["2.7.5","3.6.1"],"description":"Application version. e.g. 5.3.5","type":"string"},"exec":{"enum":["python"]},"arguments":{"description":"Optional arguments passed to the Python script","type":"string"},"environment":{"description":"Optional environment variables exported before running the Python script","type":"object"},"dependencies":{"description":"Optional Python dependencies, e.g. amqp==1.4.6","type":"array"},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$id":"software-directory/scripting/shell","$schema":"http://json-schema.org/draft-07/schema#","title":"Shell Scripting Language Schema","type":"object","additionalProperties":true,"properties":{"name":{"enum":["shell"],"description":"entity name","type":"string"},"flavor":{"enum":["sh","bash","zsh","csh"]},"summary":{"enum":["Shell Script"],"description":"Application's short description.","type":"string"},"version":{"enum":["4.2.46"],"description":"Application version. e.g. 5.3.5","type":"string"},"exec":{"enum":["sh","bash","zsh","csh"]},"arguments":{"description":"Optional arguments passed to the Shell script","type":"string"},"environment":{"description":"Optional environment variables exported before running the Shell script","type":"object"},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$id":"software-directory/scripting/unit/execution","$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema for scripting-based applications","type":"object","required":["application","flowchartId","input","type"],"additionalProperties":true,"properties":{"type":{"const":"execution","description":"type of the unit","type":"string"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of the executable. e.g. pw.x","type":"string"},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","properties":{"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"input":{"description":"unit input (type to be specified by the application's execution unit)","title":"execution unit input schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema for physics-based simulation engines","type":"object","properties":{"name":{"description":"Input file name. e.g. pw_scf.in","type":"string"},"content":{"description":"Content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"}},"required":["name","content"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}},"additionalProperties":false}]}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$id":"system/-material","$schema":"http://json-schema.org/draft-07/schema#","title":"Material entity reference schema","type":"object","required":["_id"],"properties":{"cls":{"description":"Material class","type":"string","enum":["Material"]},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"}}},{"$id":"system/-parent-job","$schema":"http://json-schema.org/draft-07/schema#","title":"Parent job entity reference schema","type":"object","required":["_id"],"properties":{"cls":{"description":"Job class","type":"string","enum":["Job"]},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"}}},{"$id":"system/-project","$schema":"http://json-schema.org/draft-07/schema#","title":"Project entity reference schema","type":"object","required":["_id"],"properties":{"cls":{"description":"Project class","type":"string","enum":["Project"]},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"}}},{"$id":"system/bankable","$schema":"http://json-schema.org/draft-07/schema#","title":"bankable schema","type":"object","properties":{"exabyteId":{"description":"Identity of the corresponding bank entity","type":"string"},"hash":{"description":"Hash string which is calculated based on the meaningful fields of the entity. Used to identify equal entities.","type":"string"}}},{"$id":"system/consistency-check","$schema":"http://json-schema.org/draft-07/schema#","title":"consistency check","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"name":{"type":"string","description":"Name of the consistency check that is performed, which is listed in an enum."},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}},{"$id":"system/creator","$schema":"http://json-schema.org/draft-07/schema#","title":"Creator entity reference schema","type":"object","required":["_id"],"properties":{"cls":{"description":"Creator class","type":"string","enum":["User"]},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"}}},{"$id":"system/creator-account","$schema":"http://json-schema.org/draft-07/schema#","title":"creator account schema","type":"object","properties":{"creatorAccount":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}}}},{"$id":"system/database-source","$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","source","origin"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string"},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},{"$id":"system/defaultable","$schema":"http://json-schema.org/draft-07/schema#","title":"defaultable entity schema","type":"object","properties":{"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$id":"system/description","$schema":"http://json-schema.org/draft-07/schema#","title":"Description schema","type":"object","properties":{"description":{"description":"entity description","type":"string"},"descriptionObject":{"type":"object"}}},{"$id":"system/entity-reference","$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}},{"$id":"system/file-source","$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},{"$id":"system/has-consistency-check","$schema":"http://json-schema.org/draft-07/schema#","title":"Has consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","properties":{"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"consistency check","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"name":{"type":"string","description":"Name of the consistency check that is performed, which is listed in an enum."},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}}}},{"$id":"system/history","$schema":"http://json-schema.org/draft-07/schema#","title":"history schema","type":"object","properties":{"history":{"type":"array","items":{"type":"object","required":["id","revision"],"properties":{"id":{"type":"string"},"revision":{"type":"number"}}}}}},{"$id":"system/iframe-message","$schema":"http://json-schema.org/draft-07/schema#","title":"iframe message schema","description":"communication message between iframe and the parent window.","type":"object","required":["type","action","payload"],"properties":{"type":{"description":"The type of the message to distinguish the direction of the message.","type":"string","enum":["from-iframe-to-host","from-host-to-iframe"],"tsEnumNames":["fromIframeToHost","fromHostToIframe"]},"action":{"description":"The action to be performed upon receiving the message.","type":"string","enum":["set-data","get-data","info"],"tsEnumNames":["setData","getData","info"]},"payload":{"description":"The content of the message with actual data.","type":"object"}}},{"$id":"system/in-set","$schema":"http://json-schema.org/draft-07/schema#","title":"System in-set schema","type":"object","properties":{"inSet":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"},"type":{"type":"string"},"index":{"type":"number"}}}}}},{"$id":"system/is-multi-material","$schema":"http://json-schema.org/draft-07/schema#","title":"is multi schema","type":"object","properties":{"isMultiMaterial":{"type":"boolean"}}},{"$id":"system/is-outdated","$schema":"http://json-schema.org/draft-07/schema#","title":"is outdated schema","type":"object","properties":{"isOutdated":{"type":"boolean"}}},{"$id":"system/job-extended","$schema":"http://json-schema.org/draft-07/schema#","title":"extended job schema","type":"object","properties":{"mode":{"type":"string"},"isExternal":{"type":"boolean"},"_materials":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}}},"_materialsSet":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}},"purged":{"type":"boolean"},"purgedAt":{"type":"number"},"dataset":{"type":"object"}}},{"$id":"system/message","$schema":"http://json-schema.org/draft-07/schema#","title":"message schema","description":"communication message between Rupy and web application.","type":"object","required":["header","payload"],"properties":{"header":{"type":"object","required":["entity","version","timestamp"],"properties":{"entity":{"type":"object","required":["_id","name"],"properties":{"_id":{"description":"job identifier","type":"string"},"name":{"description":"entity name.","type":"string","enum":["job","unit"]},"flowchartId":{"description":"unit identifier within the workflow","type":"string"},"probe":{"description":"source of the message.","type":"string","enum":["monitor","postprocessor"]}}},"version":{"description":"Rupy-Webapp communication schema version.","type":"string"},"timestamp":{"description":"Timestamp of the message.","type":"number"}}},"payload":{"description":"Actual payload of the message.","type":"object"}}},{"$id":"system/metadata","$schema":"http://json-schema.org/draft-07/schema#","title":"metadata schema","type":"object","properties":{"metadata":{"type":"object"}}},{"$id":"system/name","$schema":"http://json-schema.org/draft-07/schema#","title":"name entity schema","type":"object","properties":{"name":{"description":"entity name","type":"string"}}},{"$id":"system/owner","$schema":"http://json-schema.org/draft-07/schema#","title":"Entity owner reference schema","type":"object","required":["_id"],"properties":{"cls":{"description":"Entity owner class","type":"string","enum":["Account"]},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"}}},{"$id":"system/path","$schema":"http://json-schema.org/draft-07/schema#","title":"path schema","type":"object","properties":{"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"}}},{"$id":"system/path-entity","$schema":"http://json-schema.org/draft-07/schema#","title":"path entity schema","type":"object","properties":{"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"}}},{"$id":"system/schema-version","$schema":"http://json-schema.org/draft-07/schema#","title":"schema version","type":"object","properties":{"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"}}},{"$id":"system/scope","$schema":"http://json-schema.org/draft-07/schema#","title":"scope schema","type":"object","properties":{"scope":{"type":"string"}}},{"$id":"system/set","$schema":"http://json-schema.org/draft-07/schema#","title":"Entity set schema","type":"object","properties":{"isEntitySet":{"type":"boolean"},"entitySetType":{"type":"string"},"entityCls":{"type":"string"}}},{"$id":"system/sharing","$schema":"http://json-schema.org/draft-07/schema#","title":"extended sharing schema","type":"object","properties":{"sharedCount":{"type":"number"}}},{"$id":"system/soft-removable","$schema":"http://json-schema.org/draft-07/schema#","title":"soft removable entity schema","type":"object","properties":{"removedAt":{"description":"Timestamp of the moment when entity was removed","type":"string"},"removed":{"description":"Identifies that entity was removed","type":"boolean"}}},{"$id":"system/status","$schema":"http://json-schema.org/draft-07/schema#","title":"status schema","type":"object","properties":{"status":{"type":"string"},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$id":"system/tags","$schema":"http://json-schema.org/draft-07/schema#","title":"entity tags schema","type":"object","properties":{"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"system/timestampable","$schema":"http://json-schema.org/draft-07/schema#","title":"timestampable entity schema","type":"object","properties":{"createdAt":{"description":"entity creation time","type":"string","format":"date-time"},"updatedAt":{"description":"entity last modification time","type":"string","format":"date-time"},"createdBy":{"type":"string"},"updatedBy":{"type":"string"}}},{"$id":"system/use-values","$schema":"http://json-schema.org/draft-07/schema#","title":"use values schema","type":"object","properties":{"useValues":{"type":"boolean"}}},{"$id":"workflow/base","$schema":"http://json-schema.org/draft-07/schema#","title":"base workflow schema","type":"object","properties":{"properties":{"description":"Array of characteristic properties calculated by this workflow (TODO: add enums)","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","oneOf":[{"type":"string"},{"type":"object"}]}},"isUsingDataset":{"description":"Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab.","type":"boolean"},"workflows":{"description":"Array of workflows with the same schema as the current one.","type":"array","items":{"type":"object"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$id":"workflow/base-flow","$schema":"http://json-schema.org/draft-07/schema#","title":"BaseFlow","type":"object","required":["name","units"],"properties":{"_id":{"description":"subworkflow identity","type":"string"},"name":{"description":"Human-readable name of the subworkflow. e.g. Total-energy","type":"string"},"properties":{"description":"Array of characteristic properties calculated by this subworkflow","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","type":"string"}},"compute":{"$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}}}},{"$id":"workflow/scope","$schema":"http://json-schema.org/draft-07/schema#","title":"workflow scope schema","type":"object","required":["global","local"],"properties":{"global":{"type":"object","additionalProperties":true},"local":{"type":"object","additionalProperties":true}}},{"$id":"workflow/subworkflow/unit","$schema":"http://json-schema.org/draft-07/schema#","title":"workflow subworkflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","source","subtype","type"],"additionalProperties":true,"properties":{"type":{"const":"io","description":"type of the unit","type":"string"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO rest API input schema","type":"object","properties":{"endpoint":{"description":"rest API endpoint","type":"string"},"endpoint_options":{"description":"rest API endpoint options","type":"object"},"name":{"description":"the name of the variable in local scope to save the data under","type":"string"}},"required":["endpoint","endpoint_options"],"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database input/output schema","type":"object","oneOf":[{"properties":{"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["ids"],"additionalProperties":true},{"properties":{"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["collection","draft"],"additionalProperties":true}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["objectData"],"additionalProperties":true,"properties":{"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}]}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","type"],"additionalProperties":true,"properties":{"type":{"const":"reduce","description":"type of the unit","type":"string"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","statement","then","type"],"additionalProperties":true,"properties":{"type":{"const":"condition","description":"type of the unit","type":"string"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","name","statement","type"],"additionalProperties":true,"properties":{"type":{"const":"assertion","description":"type of the unit","type":"string"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","type"],"additionalProperties":true,"properties":{"type":{"const":"execution","description":"type of the unit","type":"string"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of the executable. e.g. pw.x","type":"string"},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","properties":{"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"input":{"description":"unit input (type to be specified by the application's execution unit)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","name","operand","type","value"],"additionalProperties":true,"properties":{"type":{"const":"assignment","description":"type of the unit","type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"scope":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","operation","operationType","type"],"additionalProperties":true,"properties":{"type":{"const":"processing","description":"type of the unit","type":"string"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}}],"discriminator":{"propertyName":"type"},"required":["type"]},{"$id":"workflow/subworkflow","$schema":"http://json-schema.org/draft-07/schema#","title":"Subworkflow","type":"object","required":["application","model","name","units"],"properties":{"units":{"description":"Contains the Units of the subworkflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow subworkflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","source","subtype","type"],"additionalProperties":true,"properties":{"type":{"const":"io","description":"type of the unit","type":"string"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO rest API input schema","type":"object","properties":{"endpoint":{"description":"rest API endpoint","type":"string"},"endpoint_options":{"description":"rest API endpoint options","type":"object"},"name":{"description":"the name of the variable in local scope to save the data under","type":"string"}},"required":["endpoint","endpoint_options"],"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database input/output schema","type":"object","oneOf":[{"properties":{"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["ids"],"additionalProperties":true},{"properties":{"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["collection","draft"],"additionalProperties":true}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["objectData"],"additionalProperties":true,"properties":{"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}]}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","type"],"additionalProperties":true,"properties":{"type":{"const":"reduce","description":"type of the unit","type":"string"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","statement","then","type"],"additionalProperties":true,"properties":{"type":{"const":"condition","description":"type of the unit","type":"string"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","name","statement","type"],"additionalProperties":true,"properties":{"type":{"const":"assertion","description":"type of the unit","type":"string"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","type"],"additionalProperties":true,"properties":{"type":{"const":"execution","description":"type of the unit","type":"string"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of the executable. e.g. pw.x","type":"string"},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","properties":{"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"input":{"description":"unit input (type to be specified by the application's execution unit)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","name","operand","type","value"],"additionalProperties":true,"properties":{"type":{"const":"assignment","description":"type of the unit","type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"scope":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","operation","operationType","type"],"additionalProperties":true,"properties":{"type":{"const":"processing","description":"type of the unit","type":"string"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"model":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base model","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"isDraft":{"description":"Defines whether to store the results/properties extracted in this unit to properties collection","type":"boolean","default":false},"_id":{"description":"subworkflow identity","type":"string"},"name":{"description":"Human-readable name of the subworkflow. e.g. Total-energy","type":"string"},"properties":{"description":"Array of characteristic properties calculated by this subworkflow","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","type":"string"}},"compute":{"$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}}}},{"$id":"workflow/unit/assertion","$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","name","statement","type"],"additionalProperties":true,"properties":{"type":{"const":"assertion","description":"type of the unit","type":"string"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$id":"workflow/unit/assignment","$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","name","operand","type","value"],"additionalProperties":true,"properties":{"type":{"const":"assignment","description":"type of the unit","type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"scope":{"type":"string"}}},{"$id":"workflow/unit/base","$schema":"http://json-schema.org/draft-07/schema#","title":"workflow base unit schema","type":"object","required":["type","flowchartId"],"additionalProperties":true,"properties":{"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$id":"workflow/unit/condition","$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","statement","then","type"],"additionalProperties":true,"properties":{"type":{"const":"condition","description":"type of the unit","type":"string"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$id":"workflow/unit/execution","$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","type"],"additionalProperties":true,"properties":{"type":{"const":"execution","description":"type of the unit","type":"string"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of the executable. e.g. pw.x","type":"string"},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","properties":{"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"input":{"description":"unit input (type to be specified by the application's execution unit)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$id":"workflow/unit/input/-input","$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input schema for physics-based simulation engines","type":"object","properties":{"input":{"title":"execution unit input schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema for physics-based simulation engines","type":"object","properties":{"name":{"description":"Input file name. e.g. pw_scf.in","type":"string"},"content":{"description":"Content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"}},"required":["name","content"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}},"additionalProperties":false}]}}}},{"$id":"workflow/unit/input/-inputItem","$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema for physics-based simulation engines","type":"object","required":["name","content"],"properties":{"name":{"description":"Input file name. e.g. pw_scf.in","type":"string"},"content":{"description":"Content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"}}},{"$id":"workflow/unit/input/-inputItemId","$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}},{"$id":"workflow/unit/input/-inputItemScope","$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}},{"$id":"workflow/unit/input/-map-input/values","$schema":"http://json-schema.org/draft-07/schema#","title":"Unit values schema","type":"object","properties":{"values":{"type":"string"}}},{"$id":"workflow/unit/input/-map-input","$schema":"http://json-schema.org/draft-07/schema#","title":"Unit map input schema","type":"object","properties":{"target":{"type":"string"},"values":{"type":"array","items":{"oneOf":[{"type":"number"},{"type":"string"},{"type":"object"}]}},"useValues":{"type":"boolean"},"scope":{"type":"string"},"name":{"type":"string"}}},{"$id":"workflow/unit/io/api","$schema":"http://json-schema.org/draft-07/schema#","title":"data IO rest API input schema","type":"object","required":["endpoint","endpoint_options"],"additionalProperties":true,"properties":{"endpoint":{"description":"rest API endpoint","type":"string"},"endpoint_options":{"description":"rest API endpoint options","type":"object"},"name":{"description":"the name of the variable in local scope to save the data under","type":"string"}}},{"$id":"workflow/unit/io/db","$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database input/output schema","type":"object","oneOf":[{"properties":{"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["ids"],"additionalProperties":true},{"properties":{"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["collection","draft"],"additionalProperties":true}]},{"$id":"workflow/unit/io/object-storage","$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["objectData"],"additionalProperties":true,"properties":{"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}},{"$id":"workflow/unit/io","$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","source","subtype","type"],"additionalProperties":true,"properties":{"type":{"const":"io","description":"type of the unit","type":"string"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO rest API input schema","type":"object","properties":{"endpoint":{"description":"rest API endpoint","type":"string"},"endpoint_options":{"description":"rest API endpoint options","type":"object"},"name":{"description":"the name of the variable in local scope to save the data under","type":"string"}},"required":["endpoint","endpoint_options"],"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database input/output schema","type":"object","oneOf":[{"properties":{"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["ids"],"additionalProperties":true},{"properties":{"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["collection","draft"],"additionalProperties":true}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["objectData"],"additionalProperties":true,"properties":{"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}]}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$id":"workflow/unit/map","$schema":"http://json-schema.org/draft-07/schema#","title":"map unit schema","type":"object","required":["flowchartId","input","type","workflowId"],"additionalProperties":true,"properties":{"type":{"const":"map","description":"type of the unit","type":"string"},"workflowId":{"description":"Id of workflow to run inside map","type":"string"},"input":{"description":"Input information for map.","type":"object","required":["target"],"properties":{"target":{"description":"Name of the target variable to substitute using the values below. e.g. K_POINTS","type":"string"},"scope":{"description":"Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.","type":"string"},"name":{"description":"Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.","type":"string"},"values":{"description":"Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution","type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"object"}]}},"useValues":{"type":"boolean"}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$id":"workflow/unit/processing","$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","operation","operationType","type"],"additionalProperties":true,"properties":{"type":{"const":"processing","description":"type of the unit","type":"string"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$id":"workflow/unit/reduce","$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","type"],"additionalProperties":true,"properties":{"type":{"const":"reduce","description":"type of the unit","type":"string"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$id":"workflow/unit/runtime/-runtime-item-full-object","$schema":"http://json-schema.org/draft-07/schema#","title":"full result schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. 'my_custom_property. '","type":"string"}}},{"$id":"workflow/unit/runtime/-runtime-item-name-object","$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}},{"$id":"workflow/unit/runtime/-runtime-item-string","$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"},{"$id":"workflow/unit/runtime/runtime-item","$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]},{"$id":"workflow/unit/runtime/runtime-items","$schema":"http://json-schema.org/draft-07/schema#","title":"runtime items schema (pre-/post-processors, monitors, results","type":"object","properties":{"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},{"$id":"workflow/unit/subworkflow","$schema":"http://json-schema.org/draft-07/schema#","title":"subworkflow unit schema","type":"object","required":["type","flowchartId"],"additionalProperties":true,"properties":{"type":{"const":"subworkflow","description":"type of the unit","type":"string"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$id":"workflow/unit","$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","source","subtype","type"],"additionalProperties":true,"properties":{"type":{"const":"io","description":"type of the unit","type":"string"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO rest API input schema","type":"object","properties":{"endpoint":{"description":"rest API endpoint","type":"string"},"endpoint_options":{"description":"rest API endpoint options","type":"object"},"name":{"description":"the name of the variable in local scope to save the data under","type":"string"}},"required":["endpoint","endpoint_options"],"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database input/output schema","type":"object","oneOf":[{"properties":{"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["ids"],"additionalProperties":true},{"properties":{"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["collection","draft"],"additionalProperties":true}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["objectData"],"additionalProperties":true,"properties":{"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}]}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","type"],"additionalProperties":true,"properties":{"type":{"const":"reduce","description":"type of the unit","type":"string"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","statement","then","type"],"additionalProperties":true,"properties":{"type":{"const":"condition","description":"type of the unit","type":"string"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","name","statement","type"],"additionalProperties":true,"properties":{"type":{"const":"assertion","description":"type of the unit","type":"string"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","type"],"additionalProperties":true,"properties":{"type":{"const":"execution","description":"type of the unit","type":"string"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of the executable. e.g. pw.x","type":"string"},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","properties":{"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"input":{"description":"unit input (type to be specified by the application's execution unit)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","name","operand","type","value"],"additionalProperties":true,"properties":{"type":{"const":"assignment","description":"type of the unit","type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"scope":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","operation","operationType","type"],"additionalProperties":true,"properties":{"type":{"const":"processing","description":"type of the unit","type":"string"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"map unit schema","type":"object","required":["flowchartId","input","type","workflowId"],"additionalProperties":true,"properties":{"type":{"const":"map","description":"type of the unit","type":"string"},"workflowId":{"description":"Id of workflow to run inside map","type":"string"},"input":{"description":"Input information for map.","type":"object","required":["target"],"properties":{"target":{"description":"Name of the target variable to substitute using the values below. e.g. K_POINTS","type":"string"},"scope":{"description":"Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.","type":"string"},"name":{"description":"Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.","type":"string"},"values":{"description":"Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution","type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"object"}]}},"useValues":{"type":"boolean"}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"subworkflow unit schema","type":"object","required":["type","flowchartId"],"additionalProperties":true,"properties":{"type":{"const":"subworkflow","description":"type of the unit","type":"string"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}}],"discriminator":{"propertyName":"type"},"required":["type"]},{"$id":"workflow","$schema":"http://json-schema.org/draft-07/schema#","title":"workflow schema","type":"object","required":["units","subworkflows"],"properties":{"subworkflows":{"description":"Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Subworkflow","type":"object","required":["application","model","name","units"],"properties":{"units":{"description":"Contains the Units of the subworkflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow subworkflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","source","subtype","type"],"additionalProperties":true,"properties":{"type":{"const":"io","description":"type of the unit","type":"string"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO rest API input schema","type":"object","properties":{"endpoint":{"description":"rest API endpoint","type":"string"},"endpoint_options":{"description":"rest API endpoint options","type":"object"},"name":{"description":"the name of the variable in local scope to save the data under","type":"string"}},"required":["endpoint","endpoint_options"],"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database input/output schema","type":"object","oneOf":[{"properties":{"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["ids"],"additionalProperties":true},{"properties":{"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["collection","draft"],"additionalProperties":true}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["objectData"],"additionalProperties":true,"properties":{"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}]}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","type"],"additionalProperties":true,"properties":{"type":{"const":"reduce","description":"type of the unit","type":"string"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","statement","then","type"],"additionalProperties":true,"properties":{"type":{"const":"condition","description":"type of the unit","type":"string"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","name","statement","type"],"additionalProperties":true,"properties":{"type":{"const":"assertion","description":"type of the unit","type":"string"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","type"],"additionalProperties":true,"properties":{"type":{"const":"execution","description":"type of the unit","type":"string"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of the executable. e.g. pw.x","type":"string"},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","properties":{"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"input":{"description":"unit input (type to be specified by the application's execution unit)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","name","operand","type","value"],"additionalProperties":true,"properties":{"type":{"const":"assignment","description":"type of the unit","type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"scope":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","operation","operationType","type"],"additionalProperties":true,"properties":{"type":{"const":"processing","description":"type of the unit","type":"string"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"model":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base model","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"isDraft":{"description":"Defines whether to store the results/properties extracted in this unit to properties collection","type":"boolean","default":false},"_id":{"description":"subworkflow identity","type":"string"},"name":{"description":"Human-readable name of the subworkflow. e.g. Total-energy","type":"string"},"properties":{"description":"Array of characteristic properties calculated by this subworkflow","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","type":"string"}},"compute":{"$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}}}}},"units":{"description":"Contains the Units of the Workflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","source","subtype","type"],"additionalProperties":true,"properties":{"type":{"const":"io","description":"type of the unit","type":"string"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO rest API input schema","type":"object","properties":{"endpoint":{"description":"rest API endpoint","type":"string"},"endpoint_options":{"description":"rest API endpoint options","type":"object"},"name":{"description":"the name of the variable in local scope to save the data under","type":"string"}},"required":["endpoint","endpoint_options"],"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database input/output schema","type":"object","oneOf":[{"properties":{"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["ids"],"additionalProperties":true},{"properties":{"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["collection","draft"],"additionalProperties":true}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["objectData"],"additionalProperties":true,"properties":{"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}]}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","type"],"additionalProperties":true,"properties":{"type":{"const":"reduce","description":"type of the unit","type":"string"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","statement","then","type"],"additionalProperties":true,"properties":{"type":{"const":"condition","description":"type of the unit","type":"string"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","name","statement","type"],"additionalProperties":true,"properties":{"type":{"const":"assertion","description":"type of the unit","type":"string"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","type"],"additionalProperties":true,"properties":{"type":{"const":"execution","description":"type of the unit","type":"string"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema (base)","type":"object","additionalProperties":true,"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of the executable. e.g. pw.x","type":"string"},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","properties":{"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}}}},"input":{"description":"unit input (type to be specified by the application's execution unit)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","name","operand","type","value"],"additionalProperties":true,"properties":{"type":{"const":"assignment","description":"type of the unit","type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"scope":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","operation","operationType","type"],"additionalProperties":true,"properties":{"type":{"const":"processing","description":"type of the unit","type":"string"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"map unit schema","type":"object","required":["flowchartId","input","type","workflowId"],"additionalProperties":true,"properties":{"type":{"const":"map","description":"type of the unit","type":"string"},"workflowId":{"description":"Id of workflow to run inside map","type":"string"},"input":{"description":"Input information for map.","type":"object","required":["target"],"properties":{"target":{"description":"Name of the target variable to substitute using the values below. e.g. K_POINTS","type":"string"},"scope":{"description":"Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.","type":"string"},"name":{"description":"Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.","type":"string"},"values":{"description":"Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution","type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"object"}]}},"useValues":{"type":"boolean"}}},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"subworkflow unit schema","type":"object","required":["type","flowchartId"],"additionalProperties":true,"properties":{"type":{"const":"subworkflow","description":"type of the unit","type":"string"},"_id":{"type":"string","description":"entity identity"},"isDraft":{"type":"boolean"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"context":{"type":"object"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"name result schema","type":"object","properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"RuntimeItemString","description":"name of runtime item in shortened notation","type":"string"}]}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"properties":{"description":"Array of characteristic properties calculated by this workflow (TODO: add enums)","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","oneOf":[{"type":"string"},{"type":"object"}]}},"isUsingDataset":{"description":"Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab.","type":"boolean"},"workflows":{"description":"Array of workflows with the same schema as the current one.","type":"array","items":{"type":"object"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}] \ No newline at end of file +[{"$id":"apse/db/materials-project/2025.9.25/summary","$schema":"http://json-schema.org/draft-07/schema#","title":"Materials Project Schema","description":"JSON schema for Materials Project API summary endpoint response","type":"object","required":["builder_meta","nsites","elements","nelements","composition","composition_reduced","formula_pretty","formula_anonymous","chemsys","volume","density","density_atomic","symmetry","material_id","deprecated","last_updated","origins","warnings","structure","property_name","task_ids","uncorrected_energy_per_atom","energy_per_atom","formation_energy_per_atom","energy_above_hull","is_stable","decomposes_to","xas","band_gap","cbm","vbm","efermi","is_gap_direct","is_metal","bandstructure","dos","is_magnetic","ordering","total_magnetization","total_magnetization_normalized_vol","total_magnetization_normalized_formula_units","num_magnetic_sites","num_unique_magnetic_sites","types_of_magnetic_species","bulk_modulus","shear_modulus","universal_anisotropy","homogeneous_poisson","possible_species","has_props","theoretical","database_IDs"],"definitions":{"bandstructure_data":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","is_gap_direct","is_metal","magnetic_ordering","equivalent_labels","nbands","direct_gap"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"oneOf":[{"type":"object","properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},"required":["band_index","kpoint_index","kpoint","energy","projections"]},{"type":"null"}]},"vbm":{"oneOf":[{"type":"object","properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},"required":["band_index","kpoint_index","kpoint","energy","projections"]},{"type":"null"}]},"efermi":{"type":["number","null"]},"is_gap_direct":{"type":"boolean"},"is_metal":{"type":"boolean"},"magnetic_ordering":{"type":"string"},"equivalent_labels":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string"}}}},"nbands":{"type":"number"},"direct_gap":{"type":"number"}}},"band_extrema":{"type":"object","required":["band_index","kpoint_index","kpoint","energy","projections"],"properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"dos_data":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}},"properties":{"builder_meta":{"type":"object","required":["emmet_version","pymatgen_version","run_id","database_version","build_date","license"],"properties":{"emmet_version":{"type":"string","description":"Version of emmet library used"},"pymatgen_version":{"type":"string","description":"Version of pymatgen library used"},"run_id":{"type":"string","description":"Unique identifier for the calculation run"},"batch_id":{"type":["string","null"],"description":"Batch identifier for grouped calculations"},"database_version":{"type":"string","description":"Version of the Materials Project database"},"build_date":{"type":"string","format":"date-time","description":"Date when the calculation was performed"},"license":{"type":"string","description":"License information for the data"}}},"nsites":{"type":"integer","description":"Number of sites in the structure"},"elements":{"type":"array","description":"List of chemical elements in the material","items":{"type":"string"}},"nelements":{"type":"integer","description":"Number of unique elements"},"composition":{"type":"object","description":"Chemical composition as element: count mapping","additionalProperties":{"type":"number"}},"composition_reduced":{"type":"object","description":"Reduced chemical composition","additionalProperties":{"type":"number"}},"formula_pretty":{"type":"string","description":"Human-readable chemical formula"},"formula_anonymous":{"type":"string","description":"Anonymous chemical formula"},"chemsys":{"type":"string","description":"Chemical system identifier"},"volume":{"type":"number","description":"Unit cell volume in cubic Angstroms"},"density":{"type":"number","description":"Material density in g/cm³"},"density_atomic":{"type":"number","description":"Atomic density"},"symmetry":{"type":"object","required":["crystal_system","symbol","number","point_group","symprec","angle_tolerance","version"],"properties":{"crystal_system":{"type":"string","description":"Crystal system classification"},"symbol":{"type":"string","description":"Space group symbol"},"hall":{"type":["string","null"],"description":"Hall symbol"},"number":{"type":"integer","description":"Space group number"},"point_group":{"type":"string","description":"Point group symbol"},"symprec":{"type":"number","description":"Symmetry precision tolerance"},"angle_tolerance":{"type":"number","description":"Angle tolerance for symmetry analysis"},"version":{"type":"string","description":"Version of symmetry analysis software"}}},"material_id":{"type":"string","description":"Unique Materials Project identifier"},"deprecated":{"type":"boolean","description":"Whether this material entry is deprecated"},"deprecation_reasons":{"type":["array","null"],"description":"Reasons for deprecation if applicable","items":{"type":"string"}},"last_updated":{"type":"string","format":"date-time","description":"Last update timestamp"},"origins":{"type":"array","items":{"type":"object","required":["name","task_id","last_updated"],"properties":{"name":{"type":"string","description":"Origin name (e.g., structure, energy, magnetism)"},"task_id":{"type":"string","description":"Task identifier for this origin"},"last_updated":{"type":"string","format":"date-time","description":"Last update for this origin"}}}},"warnings":{"type":"array","description":"Warning messages","items":{"type":"string"}},"structure":{"type":"object","required":["@module","@class","charge","lattice","properties","sites"],"properties":{"@module":{"type":"string","description":"Python module name"},"@class":{"type":"string","description":"Python class name"},"charge":{"type":"number","description":"Total charge of the structure"},"lattice":{"type":"object","required":["matrix","pbc","a","b","c","alpha","beta","gamma","volume"],"properties":{"matrix":{"type":"array","minItems":3,"maxItems":3,"description":"Lattice matrix","items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"description":"Periodic boundary conditions","items":{"type":"boolean"}},"a":{"type":"number","description":"Lattice parameter a"},"b":{"type":"number","description":"Lattice parameter b"},"c":{"type":"number","description":"Lattice parameter c"},"alpha":{"type":"number","description":"Lattice angle alpha"},"beta":{"type":"number","description":"Lattice angle beta"},"gamma":{"type":"number","description":"Lattice angle gamma"},"volume":{"type":"number","description":"Unit cell volume"}}},"properties":{"type":"object","description":"Additional structure properties"},"sites":{"type":"array","items":{"type":"object","required":["species","abc","label","xyz"],"properties":{"species":{"type":"array","items":{"type":"object","required":["element","occu"],"properties":{"element":{"type":"string","description":"Chemical element"},"occu":{"type":"number","description":"Occupancy"}}}},"abc":{"type":"array","minItems":3,"maxItems":3,"description":"Fractional coordinates","items":{"type":"number"}},"properties":{"type":"object","properties":{"magmom":{"type":"number","description":"Magnetic moment"}}},"label":{"type":"string","description":"Site label"},"xyz":{"type":"array","minItems":3,"maxItems":3,"description":"Cartesian coordinates","items":{"type":"number"}}}}}}},"property_name":{"type":"string","description":"Name of the property endpoint"},"task_ids":{"type":"array","description":"List of task identifiers","items":{"type":"string"}},"uncorrected_energy_per_atom":{"type":"number","description":"Uncorrected energy per atom in eV"},"energy_per_atom":{"type":"number","description":"Energy per atom in eV"},"formation_energy_per_atom":{"type":"number","description":"Formation energy per atom in eV"},"energy_above_hull":{"type":"number","description":"Energy above convex hull in eV"},"is_stable":{"type":"boolean","description":"Whether the material is thermodynamically stable"},"equilibrium_reaction_energy_per_atom":{"type":["number","null"],"description":"Equilibrium reaction energy per atom in eV"},"decomposes_to":{"oneOf":[{"type":"array","items":{"type":"object","required":["material_id","formula","amount"],"properties":{"material_id":{"type":"string","description":"Material ID of decomposition product"},"formula":{"type":"string","description":"Formula of decomposition product"},"amount":{"type":"number","description":"Amount of decomposition product"}}}},{"type":"null"}]},"xas":{"oneOf":[{"type":"array","items":{"type":"object","required":["edge","absorbing_element","spectrum_type"],"properties":{"edge":{"type":"string","description":"XAS edge type (K, L, M, etc.)"},"absorbing_element":{"type":"string","description":"Element for XAS absorption"},"spectrum_type":{"type":"string","description":"Type of XAS spectrum (XANES, EXAFS, XAFS)"}}}},{"type":"null"}]},"grain_boundaries":{"type":["object","null"],"description":"Grain boundary information"},"band_gap":{"type":"number","description":"Band gap in eV"},"cbm":{"type":["number","null"],"description":"Conduction band minimum in eV"},"vbm":{"type":["number","null"],"description":"Valence band maximum in eV"},"efermi":{"type":["number","null"],"description":"Fermi energy in eV"},"is_gap_direct":{"type":"boolean","description":"Whether the band gap is direct"},"is_metal":{"type":"boolean","description":"Whether the material is metallic"},"es_source_calc_id":{"type":["string","null"],"description":"Source calculation ID for electronic structure"},"bandstructure":{"oneOf":[{"type":"object","properties":{"setyawan_curtarolo":{"oneOf":[{"type":"object","properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"oneOf":[{"type":"object","properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},"required":["band_index","kpoint_index","kpoint","energy","projections"]},{"type":"null"}]},"vbm":{"oneOf":[{"type":"object","properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},"required":["band_index","kpoint_index","kpoint","energy","projections"]},{"type":"null"}]},"efermi":{"type":["number","null"]},"is_gap_direct":{"type":"boolean"},"is_metal":{"type":"boolean"},"magnetic_ordering":{"type":"string"},"equivalent_labels":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string"}}}},"nbands":{"type":"number"},"direct_gap":{"type":"number"}},"required":["task_id","band_gap","cbm","vbm","efermi","is_gap_direct","is_metal","magnetic_ordering","equivalent_labels","nbands","direct_gap"]},{"type":"null"}]},"hinuma":{"oneOf":[{"type":"object","properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"oneOf":[{"type":"object","properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},"required":["band_index","kpoint_index","kpoint","energy","projections"]},{"type":"null"}]},"vbm":{"oneOf":[{"type":"object","properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},"required":["band_index","kpoint_index","kpoint","energy","projections"]},{"type":"null"}]},"efermi":{"type":["number","null"]},"is_gap_direct":{"type":"boolean"},"is_metal":{"type":"boolean"},"magnetic_ordering":{"type":"string"},"equivalent_labels":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string"}}}},"nbands":{"type":"number"},"direct_gap":{"type":"number"}},"required":["task_id","band_gap","cbm","vbm","efermi","is_gap_direct","is_metal","magnetic_ordering","equivalent_labels","nbands","direct_gap"]},{"type":"null"}]},"latimer_munro":{"oneOf":[{"type":"object","properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"oneOf":[{"type":"object","properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},"required":["band_index","kpoint_index","kpoint","energy","projections"]},{"type":"null"}]},"vbm":{"oneOf":[{"type":"object","properties":{"band_index":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"kpoint_index":{"type":"array","items":{"type":"number"}},"kpoint":{"type":"object","required":["lattice","fcoords","ccoords","label","@module","@class"],"properties":{"lattice":{"type":"object","required":["@module","@class","matrix","pbc"],"properties":{"@module":{"type":"string"},"@class":{"type":"string"},"matrix":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"pbc":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}}}},"fcoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"ccoords":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"label":{"type":["string","null"]},"@module":{"type":"string"},"@class":{"type":"string"}}},"energy":{"type":"number"},"projections":{"type":"object","additionalProperties":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},"required":["band_index","kpoint_index","kpoint","energy","projections"]},{"type":"null"}]},"efermi":{"type":["number","null"]},"is_gap_direct":{"type":"boolean"},"is_metal":{"type":"boolean"},"magnetic_ordering":{"type":"string"},"equivalent_labels":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string"}}}},"nbands":{"type":"number"},"direct_gap":{"type":"number"}},"required":["task_id","band_gap","cbm","vbm","efermi","is_gap_direct","is_metal","magnetic_ordering","equivalent_labels","nbands","direct_gap"]},{"type":"null"}]}}},{"type":"null"}]},"dos":{"oneOf":[{"type":"object","properties":{"total":{"type":"object","additionalProperties":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}},"elemental":{"type":"object","additionalProperties":{"type":"object","properties":{"total":{"type":"object","additionalProperties":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}},"s":{"type":"object","additionalProperties":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}},"p":{"type":"object","additionalProperties":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}},"d":{"type":"object","additionalProperties":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}}}}},"orbital":{"type":"object","properties":{"s":{"type":"object","additionalProperties":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}},"p":{"type":"object","additionalProperties":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}},"d":{"type":"object","additionalProperties":{"type":"object","required":["task_id","band_gap","cbm","vbm","efermi","spin_polarization"],"properties":{"task_id":{"type":"string"},"band_gap":{"type":"number"},"cbm":{"type":["number","null"]},"vbm":{"type":["number","null"]},"efermi":{"type":"number"},"spin_polarization":{"type":["number","null"]}}}}}},"magnetic_ordering":{"type":"string","description":"Magnetic ordering type"}}},{"type":"null"}]},"dos_energy_up":{"type":["object","null"],"description":"Density of states for spin up"},"dos_energy_down":{"type":["object","null"],"description":"Density of states for spin down"},"is_magnetic":{"type":"boolean","description":"Whether the material is magnetic"},"ordering":{"type":"string","description":"Magnetic ordering"},"total_magnetization":{"type":"number","description":"Total magnetization"},"total_magnetization_normalized_vol":{"type":"number","description":"Volume-normalized magnetization"},"total_magnetization_normalized_formula_units":{"type":"number","description":"Formula unit normalized magnetization"},"num_magnetic_sites":{"type":"number","description":"Number of magnetic sites"},"num_unique_magnetic_sites":{"type":"number","description":"Number of unique magnetic sites"},"types_of_magnetic_species":{"type":"array","description":"Types of magnetic species","items":{"type":"string"}},"bulk_modulus":{"oneOf":[{"type":"object","properties":{"voigt":{"type":"number","description":"Voigt bulk modulus in GPa"},"reuss":{"type":"number","description":"Reuss bulk modulus in GPa"},"vrh":{"type":"number","description":"Voigt-Reuss-Hill bulk modulus in GPa"}},"required":["voigt","reuss","vrh"]},{"type":"null"}]},"shear_modulus":{"oneOf":[{"type":"object","properties":{"voigt":{"type":"number","description":"Voigt shear modulus in GPa"},"reuss":{"type":"number","description":"Reuss shear modulus in GPa"},"vrh":{"type":"number","description":"Voigt-Reuss-Hill shear modulus in GPa"}},"required":["voigt","reuss","vrh"]},{"type":"null"}]},"universal_anisotropy":{"oneOf":[{"type":"number"},{"type":"null"}],"description":"Universal anisotropy index"},"homogeneous_poisson":{"oneOf":[{"type":"number"},{"type":"null"}],"description":"Homogeneous Poisson ratio"},"e_total":{"type":["number","null"],"description":"Total energy"},"e_ionic":{"type":["number","null"],"description":"Ionic energy"},"e_electronic":{"type":["number","null"],"description":"Electronic energy"},"n":{"type":["number","null"],"description":"Refractive index"},"e_ij_max":{"type":["number","null"],"description":"Maximum elastic constant"},"weighted_surface_energy_EV_PER_ANG2":{"type":["number","null"],"description":"Weighted surface energy in eV/Ų"},"weighted_surface_energy":{"type":["number","null"],"description":"Weighted surface energy"},"weighted_work_function":{"type":["number","null"],"description":"Weighted work function"},"surface_anisotropy":{"type":["number","null"],"description":"Surface anisotropy"},"shape_factor":{"type":["number","null"],"description":"Shape factor"},"has_reconstructed":{"type":["boolean","null"],"description":"Whether surface has reconstruction"},"possible_species":{"oneOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Possible ionic species"},"has_props":{"type":"object","required":["materials","thermo","xas","grain_boundaries","chemenv","electronic_structure","absorption","bandstructure","dos","magnetism","elasticity","dielectric","piezoelectric","surface_properties","oxi_states","provenance","charge_density","eos","phonon","insertion_electrodes","substrates"],"properties":{"materials":{"type":"boolean"},"thermo":{"type":"boolean"},"xas":{"type":"boolean"},"grain_boundaries":{"type":"boolean"},"chemenv":{"type":"boolean"},"electronic_structure":{"type":"boolean"},"absorption":{"type":"boolean"},"bandstructure":{"type":"boolean"},"dos":{"type":"boolean"},"magnetism":{"type":"boolean"},"elasticity":{"type":"boolean"},"dielectric":{"type":"boolean"},"piezoelectric":{"type":"boolean"},"surface_properties":{"type":"boolean"},"oxi_states":{"type":"boolean"},"provenance":{"type":"boolean"},"charge_density":{"type":"boolean"},"eos":{"type":"boolean"},"phonon":{"type":"boolean"},"insertion_electrodes":{"type":"boolean"},"substrates":{"type":"boolean"}}},"theoretical":{"type":"boolean","description":"Whether this is a theoretical material"},"database_IDs":{"type":"object","properties":{"icsd":{"type":"array","description":"ICSD database identifiers","items":{"type":"string"}}}}}},{"$id":"apse/db/materials-project/legacy/material","$schema":"http://json-schema.org/draft-07/schema#","title":"Materials Project Legacy Material schema","description":"JSON schema for Materials Project API legacy material endpoint response","type":"object","required":["material_id","energy","energy_per_atom","volume","formation_energy_per_atom","nsites","unit_cell_formula","pretty_formula","is_hubbard","elements","nelements","e_above_hull","hubbards","is_compatible","spacegroup","task_ids","band_gap","density","icsd_ids","cif","total_magnetization","oxide_type","tags","deprecated","full_formula"],"properties":{"energy":{"type":"number","description":"Total energy"},"energy_per_atom":{"type":"number","description":"Energy per atom"},"volume":{"type":"number","description":"Unit cell volume"},"formation_energy_per_atom":{"type":"number","description":"Formation energy per atom"},"nsites":{"type":"integer","description":"Number of sites in unit cell"},"unit_cell_formula":{"type":"object","description":"Unit cell formula as element counts","additionalProperties":{"type":"number"}},"pretty_formula":{"type":"string","description":"Pretty formatted chemical formula"},"is_hubbard":{"type":"boolean","description":"Whether Hubbard U correction was applied"},"elements":{"type":"array","description":"List of elements in the material","items":{"type":"string"}},"nelements":{"type":"integer","description":"Number of distinct elements"},"e_above_hull":{"type":["number","null"],"description":"Energy above convex hull"},"hubbards":{"type":"object","description":"Hubbard U values","additionalProperties":true},"is_compatible":{"type":"boolean","description":"Whether material is compatible"},"spacegroup":{"type":"object","description":"Spacegroup information","properties":{"symprec":{"type":"number"},"source":{"type":"string"},"symbol":{"type":"string"},"number":{"type":"integer"},"point_group":{"type":"string"},"crystal_system":{"type":"string"},"hall":{"type":"string"}}},"task_ids":{"type":"array","description":"List of task IDs","items":{"type":"string"}},"band_gap":{"type":"number","description":"Band gap value"},"density":{"type":"number","description":"Material density"},"icsd_id":{"type":["integer","null"],"description":"ICSD ID (single)"},"icsd_ids":{"type":"array","description":"List of ICSD IDs","items":{"type":"integer"}},"cif":{"type":"string","description":"CIF file content"},"total_magnetization":{"type":"number","description":"Total magnetization"},"material_id":{"type":"string","description":"Material ID from Materials Project"},"oxide_type":{"type":"string","description":"Oxide type classification"},"tags":{"type":"array","description":"Material tags/names","items":{"type":"string"}},"elasticity":{"type":["object","null"],"description":"Elasticity data","properties":{"G_Reuss":{"type":"number","description":"Reuss shear modulus in GPa"},"G_VRH":{"type":"number","description":"Voigt-Reuss-Hill shear modulus in GPa"},"G_Voigt":{"type":"number","description":"Voigt shear modulus in GPa"},"G_Voigt_Reuss_Hill":{"type":"number","description":"Voigt-Reuss-Hill shear modulus in GPa (alternative field)"},"K_Reuss":{"type":"number","description":"Reuss bulk modulus in GPa"},"K_VRH":{"type":"number","description":"Voigt-Reuss-Hill bulk modulus in GPa"},"K_Voigt":{"type":"number","description":"Voigt bulk modulus in GPa"},"K_Voigt_Reuss_Hill":{"type":"number","description":"Voigt-Reuss-Hill bulk modulus in GPa (alternative field)"},"elastic_anisotropy":{"type":"number","description":"Elastic anisotropy"},"elastic_tensor":{"type":"array","description":"6x6 elastic tensor in GPa","items":{"type":"array","items":{"type":"number"}}},"homogeneous_poisson":{"type":"number","description":"Homogeneous Poisson ratio"},"poisson_ratio":{"type":"number","description":"Poisson ratio"},"universal_anisotropy":{"type":"number","description":"Universal elastic anisotropy"},"elastic_tensor_original":{"type":"array","description":"Original 6x6 elastic tensor in GPa","items":{"type":"array","items":{"type":"number"}}},"compliance_tensor":{"type":"array","description":"6x6 compliance tensor in GPa^-1","items":{"type":"array","items":{"type":"number"}}},"warnings":{"type":"array","description":"Warnings about elastic properties","items":{"type":"string"}},"nsites":{"type":"integer","description":"Number of sites in the structure"}}},"piezo":{"type":["object","null"],"description":"Piezoelectric data"},"diel":{"type":["object","null"],"description":"Dielectric data"},"deprecated":{"type":"boolean","description":"Whether material is deprecated"},"full_formula":{"type":"string","description":"Full chemical formula"}}},{"$id":"apse/db/nist-jarvis/2024.3.13/atoms","$schema":"http://json-schema.org/draft-07/schema#","title":"NIST JARVIS Atoms schema","description":"NIST J.A.R.V.I.S. db entry `atoms` key schema. Based on https://figshare.com/articles/dataset/Monolayer_data_for_heterostructure/22344571","type":"object","additionalProperties":false,"properties":{"lattice_mat":{"type":"array","description":"Crystal lattice vectors as a 3x3 matrix, in Angstroms","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"coords":{"type":"array","description":"Atomic coordinates for each atom in the unit cell","minItems":1,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"elements":{"type":"array","description":"Atomic elements for each atom in the unit cell in the same order as `coords`","minItems":1,"items":{"type":"string"}},"abc":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"angles":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"cartesian":{"type":"boolean","description":"True if the coordinates are in Cartesian space, false if in fractional space"},"props":{"type":"array","description":"Additional properties for each of the atoms","items":{"type":"string"}}}},{"$id":"apse/db/nist-jarvis/2024.3.13/db-entry","$schema":"http://json-schema.org/draft-07/schema#","title":"NIST JARVIS db entry schema","description":"NIST J.A.R.V.I.S. db entry `atoms` key schema. Based on https://figshare.com/articles/dataset/Monolayer_data_for_heterostructure/22344571","type":"object","additionalProperties":true,"properties":{"atoms":{"$schema":"http://json-schema.org/draft-07/schema#","title":"NIST JARVIS Atoms schema","description":"NIST J.A.R.V.I.S. db entry `atoms` key schema. Based on https://figshare.com/articles/dataset/Monolayer_data_for_heterostructure/22344571","type":"object","additionalProperties":false,"properties":{"lattice_mat":{"type":"array","description":"Crystal lattice vectors as a 3x3 matrix, in Angstroms","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"coords":{"type":"array","description":"Atomic coordinates for each atom in the unit cell","minItems":1,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"elements":{"type":"array","description":"Atomic elements for each atom in the unit cell in the same order as `coords`","minItems":1,"items":{"type":"string"}},"abc":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"angles":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"cartesian":{"type":"boolean","description":"True if the coordinates are in Cartesian space, false if in fractional space"},"props":{"type":"array","description":"Additional properties for each of the atoms","items":{"type":"string"}}}},"jid":{"type":"string","description":"The id of the entry in the database, e.g. JVASP-677"}}},{"$id":"apse/db/third-party-sources","$schema":"http://json-schema.org/draft-07/schema#","title":"third party sources","type":"object","required":["source"],"properties":{"source":{"type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/atomic-positions","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic positions schema","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1493","type":"object","additionalProperties":false,"properties":{"card_option":{"type":"string","enum":["alat","bohr","angstrom","crystal","crystal_sg"],"default":"alat"},"values":{"type":"array","items":{"type":"object","required":["x","y","z"],"additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom as specified in ATOMIC_SPECIES"},"x":{"type":"number","description":"atomic positions"},"y":{"type":"number","description":"atomic positions"},"z":{"type":"number","description":"atomic positions"},"if_pos(1)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(2)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(3)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1}}}}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/atomic-species","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic species schema","type":"object","additionalProperties":false,"properties":{"values":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"Mass_X":{"type":"number","description":"mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"},"PseudoPot_X":{"type":"string","description":"PseudoPot_X"}}}}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/cell","$schema":"http://json-schema.org/draft-07/schema#","title":"cell schema","type":"object","oneOf":[{"type":"object","additionalProperties":false,"properties":{"cell_dynamics":{"type":"string","enum":["none","sd","damp-pr","damp-w","bfgs"],"default":"bfgs","description":"CASE ( calculation == 'vc-relax' )"}}},{"type":"object","additionalProperties":false,"properties":{"cell_dynamics":{"type":"string","enum":["none","pr","w"],"description":"CASE ( calculation == 'vc-md' )"}}}],"additionalProperties":false,"properties":{"press":{"type":"number","description":"Target pressure [KBar] in a variable-cell md or relaxation run.","default":0},"wmass":{"type":"number","description":"Fictitious cell mass [amu] for variable-cell simulations (both 'vc-md' and 'vc-relax'). Default: 0.75*Tot_Mass/pi**2 for Parrinello-Rahman MD; 0.75*Tot_Mass/pi**2/Omega**(2/3) for Wentzcovitch MD"},"cell_factor":{"type":"number","description":"Used in the construction of the pseudopotential tables. It should exceed the maximum linear contraction of the cell during a simulation. Default: 2.0 for variable-cell calculations, 1.0 otherwise"},"press_conv_thr":{"type":"number","default":0.5,"description":"Convergence threshold on the pressure for variable cell relaxation ('vc-relax' : note that the other convergence thresholds for ionic relaxation apply as well)."},"cell_dofree":{"type":"string","enum":["all","ibrav","a","b","c","fixa","fixb","fixc","x","y","xy","xz","xyz","shape","volume","2Dxy","2Dshape","epitaxial_ab","epitaxial_ac","epitaxial_bc"],"default":"all","description":"Select which of the cell parameters should be moved"}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/cell-parameters","$schema":"http://json-schema.org/draft-07/schema#","title":"cell parameters schema","type":"object","additionalProperties":false,"properties":{"card_option":{"type":"string","enum":["alat","bohr","angstrom"],"description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"values":{"type":"object","additionalProperties":false,"properties":{"v1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/control","$schema":"http://json-schema.org/draft-07/schema#","title":"control schema","type":"object","additionalProperties":false,"properties":{"calculation":{"description":"A string describing the task to be performed","type":"string","enum":["scf","nscf","bands","relax","md","vc-relax","vc-md"],"default":"scf"},"title":{"description":"reprinted on output.","type":"string","default":""},"verbosity":{"description":"Currently two verbosity levels are implemented: high, low. 'debug' and 'medium' have the same effect as 'high'; 'default' and 'minimal' as 'low'","type":"string","enum":["high","low","debug","medium","minimal","default"],"default":"low"},"restart_mode":{"type":"string","enum":["from_scratch","restart"],"default":"from_scratch"},"wf_collect":{"type":"boolean","description":"OBSOLETE - NO LONGER IMPLEMENTED"},"nstep":{"description":"Default: 1 if calculation == 'scf', 'nscf', 'bands'; 50 for the other cases; Number of molecular-dynamics or structural optimization steps performed in this run. If set to 0, the code performs a quick \"dry run\", stopping just after initialization. This is useful to check for input correctness and to have the summary printed. NOTE: in MD calculations, the code will perform \"nstep\" steps even if restarting from a previously interrupted calculation.","type":"number","default":1},"iprint":{"description":"band energies are written every iprint iterations","type":"number"},"tstress":{"type":"boolean","default":false,"description":"calculate stress. It is set to .TRUE. automatically if calculation == 'vc-md' or 'vc-relax'"},"tprnfor":{"type":"boolean","description":"calculate forces. It is set to .TRUE. automatically if calculation == 'relax','md','vc-md'"},"dt":{"type":"number","description":"time step for molecular dynamics, in Rydberg atomic units (1 a.u.=4.8378 * 10^-17 s : beware, the CP code uses Hartree atomic units, half that much!!!)","default":20},"outdir":{"type":"string","description":"input, temporary, output files are found in this directory, see also wfcdir"},"wfcdir":{"type":"string","description":"This directory specifies where to store files generated by each processor (*.wfc{N}, *.igk{N}, etc.). Useful for machines without a parallel file system: set wfcdir to a local file system, while outdir should be a parallel or network file system, visible to all processors. Beware: in order to restart from interrupted runs, or to perform further calculations using the produced data files, you may need to copy files to outdir. Works only for pw.x."},"prefix":{"type":"string","description":"prepended to input/output filenames: prefix.wfc, prefix.rho, etc.","default":"pwscf"},"lkpoint_dir":{"type":"boolean","description":"OBSOLETE - NO LONGER IMPLEMENTED"},"max_seconds":{"type":"number","default":10000000,"description":"Jobs stops after max_seconds CPU time. Use this option in conjunction with option restart_mode if you need to split a job too long to complete into shorter jobs that fit into your batch queues."},"etot_conv_thr":{"type":"number","default":0.0001,"description":"Convergence threshold on total energy (a.u) for ionic minimization: the convergence criterion is satisfied when the total energy changes less than etot_conv_thr between two consecutive scf steps. Note that etot_conv_thr is extensive, like the total energy. See also forc_conv_thr - both criteria must be satisfied"},"forc_conv_thr":{"type":"number","default":0.001,"description":"Convergence threshold on forces (a.u) for ionic minimization: the convergence criterion is satisfied when all components of all forces are smaller than forc_conv_thr. See also etot_conv_thr - both criteria must be satisfied"},"disk_io":{"type":"string","enum":["high","medium","low","nowf","none"],"description":"Specifies the amount of disk I/O activity: (only for binary files and xml data file in data directory; other files printed at each molecular dynamics / structural optimization step are not controlled by this option )"},"pseudo_dir":{"type":"string","description":"directory containing pseudopotential files. Default: value of the $ESPRESSO_PSEUDO environment variable if set; '$HOME/espresso/pseudo/' otherwise"},"tefield":{"type":"boolean","default":false,"description":"If .TRUE. a saw-like potential simulating an electric field is added to the bare ionic potential. See variables edir, eamp, emaxpos, eopreg for the form and size of the added potential."},"dipfield":{"type":"boolean","default":false,"description":"If .TRUE. and tefield==.TRUE. a dipole correction is also added to the bare ionic potential - implements the recipe of L. Bengtsson, PRB 59, 12301 (1999). See variables edir, emaxpos, eopreg for the form of the correction. Must be used ONLY in a slab geometry, for surface calculations, with the discontinuity FALLING IN THE EMPTY SPACE."},"lelfield":{"type":"boolean","default":false,"description":"If .TRUE. a homogeneous finite electric field described through the modern theory of the polarization is applied. This is different from tefield == .true. !"},"nberrycyc":{"type":"integer","default":1,"description":"In the case of a finite electric field ( lelfield == .TRUE. ) it defines the number of iterations for converging the wavefunctions in the electric field Hamiltonian, for each external iteration on the charge density"},"lorbm":{"type":"boolean","default":false,"description":"If .TRUE. perform orbital magnetization calculation."},"lberry":{"type":"boolean","default":false,"description":"If .TRUE. perform a Berry phase calculation. See the header of PW/src/bp_c_phase.f90 for documentation"},"gdir":{"type":"number","description":"For Berry phase calculation: direction of the k-point strings in reciprocal space. Allowed values: 1, 2, 3 1=first, 2=second, 3=third reciprocal lattice vector For calculations with finite electric fields (lelfield==.true.) \"gdir\" is the direction of the field."},"nppstr":{"type":"number","description":"For Berry phase calculation: number of k-points to be calculated along each symmetry-reduced string. The same for calculation with finite electric fields (lelfield==.true.)."},"gate":{"type":"boolean","default":false,"description":"In the case of charged cells (tot_charge .ne. 0) setting gate = .TRUE. represents the counter charge (i.e. -tot_charge) not by a homogeneous background charge but with a charged plate, which is placed at zgate (see below). Details of the gate potential can be found in T. Brumme, M. Calandra, F. Mauri; PRB 89, 245406 (2014). Note, that in systems which are not symmetric with respect to the plate, one needs to enable the dipole correction! (dipfield=.true.). Currently, symmetry can be used with gate=.true. but carefully check that no symmetry is included which maps z to -z even if in principle one could still use them for symmetric systems (i.e. no dipole correction). For nosym=.false. verbosity is set to 'high'. Note: this option was called \"monopole\" in v6.0 and 6.1 of pw.x"},"twochem":{"type":"boolean","default":false,"description":"IF .TRUE. , a two chemical potential calculation for the simulation of photoexcited systems is performed, constraining a fraction of the electrons in the conduction manifold."},"lfcp":{"type":"boolean","default":false,"description":"If .TRUE. perform a constant bias potential (constant-mu) calculation for a system with ESM method. See the header of PW/src/fcp_module.f90 for documentation. To perform the calculation, you must set a namelist FCP."},"trism":{"type":"boolean","default":false,"description":"If .TRUE. perform a 3D-RISM-SCF calculation [for details see H.Sato et al., JCP 112, 9463 (2000), doi:10.1063/1.481564]. The solvent's distributions are calculated by 3D-RISM, though solute is treated as SCF. The charge density and the atomic positions are optimized, simultaneously with the solvents. To perform the calculation, you must set a namelist RISM and a card SOLVENTS. If assume_isolated = 'esm' and esm_bc = 'bc1', Laue-RISM is calculated instead of 3D-RISM and coupled with ESM method (i.e. ESM-RISM). [for details see S.Nishihara and M.Otani, PRB 96, 115429 (2017)]. The default of mixing_beta is 0.2 for both 3D-RISM and Laue-RISM. For structural relaxation with BFGS, ignore_wolfe is always .TRUE. ."}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/electrons","$schema":"http://json-schema.org/draft-07/schema#","title":"electrons schema","type":"object","additionalProperties":false,"properties":{"electron_maxstep":{"type":"integer","default":100,"description":"maximum number of iterations in a scf step. If exact exchange is active, this will affect the inner loops."},"exx_maxstep":{"type":"integer","default":100,"description":"maximum number of outer iterations in a scf calculation with exact exchange."},"scf_must_converge":{"type":"boolean","default":true,"description":"If .false. do not stop molecular dynamics or ionic relaxation when electron_maxstep is reached. Use with care."},"conv_thr":{"type":"number"},"adaptive_thr":{"type":"boolean","default":false,"description":"If .TRUE. this turns on the use of an adaptive conv_thr for the inner scf loops when using EXX."},"conv_thr_init":{"type":"number","description":"When adaptive_thr = .TRUE. this is the convergence threshold used for the first scf cycle."},"conv_thr_multi":{"type":"number","description":"When adaptive_thr = .TRUE. the convergence threshold for each scf cycle is given by: max( conv_thr, conv_thr_multi * dexx )"},"mixing_mode":{"type":"string","enum":["plain","TF","local-TF"],"default":"plain"},"mixing_beta":{"type":"number","description":"mixing factor for self-consistency"},"mixing_ndim":{"type":"integer","default":8,"description":"number of iterations used in mixing scheme"},"mixing_fixed_ns":{"type":"integer","default":0,"description":"For DFT+U : number of iterations with fixed ns ( ns is the atomic density appearing in the Hubbard term )."},"diagonalization":{"type":"string","enum":["david","cg","ppcg","paro","ParO","rmm-davidson","rmm-paro"],"default":"david"},"diago_thr_init":{"type":"number","description":"Convergence threshold (ethr) for iterative diagonalization (the check is on eigenvalue convergence)."},"diago_cg_maxiter":{"type":"integer","description":"For conjugate gradient diagonalization: max number of iterations"},"diago_ppcg_maxiter":{"type":"integer","description":"For ppcg diagonalization: max number of iterations"},"diago_david_ndim":{"type":"integer","default":2,"description":"For Davidson diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed)."},"diago_rmm_ndim":{"type":"integer","default":4,"description":"For RMM-DIIS diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed)."},"diago_rmm_conv":{"type":"boolean","default":false,"description":"If .TRUE., RMM-DIIS is performed up to converge. If .FALSE., RMM-DIIS is performed only once."},"diago_gs_nblock":{"type":"integer","default":16,"description":"For RMM-DIIS diagonalization: blocking size of Gram-Schmidt orthogonalization"},"diago_full_acc":{"type":"boolean","default":false,"description":"If .TRUE. all the empty states are diagonalized at the same level of accuracy of the occupied ones. Otherwise the empty states are diagonalized using a larger threshold (this should not affect total energy, forces, and other ground-state properties)."},"efield":{"type":"number","description":"Amplitude of the finite electric field (in Ry a.u.; 1 a.u. = 36.3609*10^10 V/m). Used only if lelfield==.TRUE. and if k-points (K_POINTS card) are not automatic."},"efield_cart":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"efield_phase":{"type":"string","enum":["read","write","none"],"default":"none"},"startingpot":{"type":"string","enum":["atomic","file"]},"startingwfc":{"type":"string","enum":["atomic","atomic+random","random","file"],"default":"atomic+random"},"tqr":{"type":"boolean","default":false,"description":"If .true., use a real-space algorithm for augmentation charges of ultrasoft pseudopotentials and PAWsets. Faster but numerically less accurate than the default G-space algorithm. Use with care and after testing!"},"real_space":{"type":"boolean","default":false,"description":"If .true., exploit real-space localization to compute matrix elements for nonlocal projectors. Faster and in principle better scaling than the default G-space algorithm, but numerically less accurate, may lead to some loss of translational invariance. Use with care and after testing!"}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/hubbard","$schema":"http://json-schema.org/draft-07/schema#","title":"hubbard schema","type":"object","additionalProperties":false,"properties":{"card_option":{"type":"string","enum":["atomic","ortho-atomic","norm-atomic","wf","pseudo"]},"values":{"oneOf":[{"description":"IF DFT+U","type":"array","items":{"oneOf":[{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1764","additionalProperties":false,"properties":{"U":{"type":"string","enum":["U"],"description":"string constant \"U\"; indicates the specs for the U parameter will be given"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"u_val":{"type":"number","description":"value of the U parameter (in eV)"}}},{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1784","additionalProperties":false,"properties":{"J0":{"type":"string","enum":["J0"],"description":"string constant \"J0\"; indicates the specs for the J0 parameter will be given"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"j0_val":{"type":"number","description":"value of the J0 parameter (in eV)"}}}]}},{"description":"IF DFT+U+J","type":"array","items":{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1817","additionalProperties":false,"properties":{"paramType":{"type":"string","enum":["U","J","B","E2","E3"],"description":"character describing the type of Hubbard parameter allowed values: U, J and either B (for d-orbitals) or E2 and E3 (for f-orbitals)"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"paramValue":{"type":"number","description":"value of the J0 parameter (in eV)"}}}},{"description":"IF DFT+U+V","type":"array","items":{"oneOf":[{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1847","additionalProperties":false,"properties":{"U":{"type":"string","enum":["U"],"description":"string constant \"U\"; indicates the specs for the U parameter will be given"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"u_val":{"type":"number","description":"value of the U parameter (in eV)"}}},{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1865","additionalProperties":false,"properties":{"J0":{"type":"string","enum":["J0"],"description":"string constant \"J0\"; indicates the specs for the J0 parameter will be given"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"j0_val":{"type":"number","description":"value of the J0 parameter (in eV)"}}},{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1884","additionalProperties":false,"properties":{"V":{"type":"string","enum":["V"],"description":"string constant \"V\"; indicates the specs for the V parameter will be given"},"label(I)":{"type":"string","description":"label of the atom I (as defined in ATOMIC_SPECIES)"},"manifold(I)":{"type":"string","description":"specs of the manifold for atom I (e.g., 3d, 2p...)"},"label(J)":{"type":"string","description":"label of the atom J (as defined in ATOMIC_SPECIES)"},"manifold(J)":{"type":"string","description":"specs of the manifold for atom J (e.g., 3d, 2p...)"},"I":{"type":"integer","description":"index of the atom I"},"J":{"type":"integer","description":"index of the atom J"},"v_val(I,J)":{"type":"number","description":"value of the V parameter for the atom pair I,J (in eV)"}}}]}}]}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/ions","$schema":"http://json-schema.org/draft-07/schema#","title":"ions schema","type":"object","oneOf":[{"type":"object","additionalProperties":false,"properties":{"ion_dynamics":{"type":"string","enum":["bfgs","damp","fire"],"default":"bfgs","description":"CASE: calculation == 'relax'"}}},{"type":"object","additionalProperties":false,"properties":{"ion_dynamics":{"type":"string","enum":["verlet","langevin","langevin-smc"],"default":"verlet","description":"CASE: calculation == 'md'"}}},{"type":"object","additionalProperties":false,"properties":{"ion_dynamics":{"type":"string","enum":["bfgs","damp"],"default":"bfgs","description":"CASE: calculation == 'vc-relax'"}}},{"type":"object","additionalProperties":false,"properties":{"ion_dynamics":{"type":"string","enum":["beeman"],"default":"beeman","description":"CASE: calculation == 'vc-md'"}}}],"additionalProperties":false,"properties":{"ion_positions":{"type":"string","enum":["default","from_input"],"default":"default"},"ion_velocities":{"type":"string","enum":["default","from_input"],"default":"default"},"pot_extrapolation":{"type":"string","enum":["none","atomic","first_order","second_order"],"default":"atomic","description":"Used to extrapolate the potential from preceding ionic steps."},"wfc_extrapolation":{"type":"string","enum":["none","first_order","second_order"],"default":"none","description":"Used to extrapolate the wavefunctions from preceding ionic steps."},"remove_rigid_rot":{"type":"boolean","default":false,"description":"This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells."},"ion_temperature":{"type":"string","enum":["rescaling","rescale-v","rescale-T","reduce-T","berendsen","andersen","svr","initial","not_controlled"],"default":"not_controlled"},"tempw":{"type":"number","description":"Starting temperature (Kelvin) in MD runs target temperature for most thermostats.","default":300},"tolp":{"type":"number","description":"Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp.","default":100},"delta_t":{"type":"number","default":1},"nraise":{"type":"integer","default":1},"refold_pos":{"type":"boolean","default":false,"description":"This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell."},"upscale":{"type":"number","description":"Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale.","default":100},"bfgs_ndim":{"type":"integer","default":1,"description":"Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm."},"trust_radius_max":{"type":"number","description":"Maximum ionic displacement in the structural relaxation. (bfgs only)","default":0.8},"trust_radius_min":{"type":"number","description":"Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only)","default":0.001},"trust_radius_ini":{"type":"number","description":"Initial ionic displacement in the structural relaxation. (bfgs only)","default":0.5},"w_1":{"type":"number","default":0.01},"w_2":{"type":"number","description":"Parameters used in line search based on the Wolfe conditions. (bfgs only)","default":0.5},"fire_alpha_init":{"type":"number","description":"Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3","default":0.2},"fire_falpha":{"type":"number","description":"Scaling of the alpha mixing parameter for steps with P > 0;","default":0.99},"fire_nmin":{"type":"integer","default":5,"description":"Minimum number of steps with P > 0 before increase of dt"},"fire_f_inc":{"type":"number","description":"Factor for increasing dt","default":1.1},"fire_f_dec":{"type":"number","description":"Factor for decreasing dt","default":0.5},"fire_dtmax":{"type":"number","description":"Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt","default":10}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/k-points","$schema":"http://json-schema.org/draft-07/schema#","title":"k points schema","type":"object","additionalProperties":false,"properties":{"card_option":{"type":"string","enum":["tpiba","automatic","crystal","gamma","tpiba_b","crystal_b","tpiba_c","crystal_c"]},"values":{"oneOf":[{"type":"array","description":"K_POINTS tpiba | crystal | tpiba_b | crystal_b | tpiba_c | crystal_c","items":{"type":"object","additionalProperties":false,"properties":{"nks":{"type":"integer","description":"Number of supplied special k-points."},"xk_x":{"type":"number"},"xk_y":{"type":"number"},"xk_z":{"type":"number"},"wk":{"type":"number"}}}},{"type":"object","description":"K_POINTS automatic","additionalProperties":false,"properties":{"nk1":{"type":"integer","description":"Number of supplied special k-points."},"nk2":{"type":"integer","description":"Number of supplied special k-points."},"nk3":{"type":"integer","description":"Number of supplied special k-points."},"sk1":{"type":"integer","description":"Number of supplied special k-points."},"sk2":{"type":"integer","description":"Number of supplied special k-points."},"sk3":{"type":"integer","description":"Number of supplied special k-points."}}},{"type":"null","description":"K_POINTS gamma"}]}}},{"$id":"apse/file/applications/espresso/7.2/pw.x/system","$schema":"http://json-schema.org/draft-07/schema#","title":"system schema","type":"object","anyOf":[{"properties":{"celldm":{"type":"array","minItems":6,"maxItems":6,"items":{"type":"number"}}}},{"properties":{"A":{"type":"number"},"B":{"type":"number"},"C":{"type":"number"},"cosAB":{"type":"number"},"cosAC":{"type":"number"},"cosBC":{"type":"number"}}}],"required":["ibrav","nat","ntyp","ecutwfc"],"additionalProperties":false,"properties":{"ibrav":{"type":"integer"},"nat":{"type":"integer","description":"number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms)"},"ntyp":{"type":"integer","description":"number of types of atoms in the unit cell"},"nbnd":{"type":"integer","description":"Default: for an insulator, nbnd = number of valence bands (nbnd = # of electrons /2); for a metal, 20% more (minimum 4 more)"},"nbnd_cond":{"type":"integer","description":"Default: nbnd_cond = nbnd - # of electrons / 2 in the collinear case; nbnd_cond = nbnd - # of electrons in the noncollinear case."},"tot_charge":{"type":"number","default":0},"starting_charge":{"type":"number","default":0,"description":"starting charge on atomic type 'i', to create starting potential with startingpot = 'atomic'."},"tot_magnetization":{"type":"number","default":-10000,"description":"Total majority spin charge - minority spin charge. Used to impose a specific total electronic magnetization. If unspecified then tot_magnetization variable is ignored and the amount of electronic magnetization is determined during the self-consistent cycle."},"starting_magnetization":{"type":"array","items":{"type":"number","default":0,"minimum":-1,"maximum":1}},"ecutwfc":{"type":"number","description":"kinetic energy cutoff (Ry) for wavefunctions"},"ecutrho":{"type":"number","description":"Kinetic energy cutoff (Ry) for charge density and potential For norm-conserving pseudopotential you should stick to the default value, you can reduce it by a little but it will introduce noise especially on forces and stress. Default: 4 * ecutwfc"},"ecutfock":{"type":"number","description":"Kinetic energy cutoff (Ry) for the exact exchange operator in EXX type calculations. By default this is the same as ecutrho but in some EXX calculations, a significant speed-up can be obtained by reducing ecutfock, at the expense of some loss in accuracy. Must be .gt. ecutwfc. Not implemented for stress calculation and for US-PP and PAW pseudopotentials."},"nr1":{"type":"integer","description":"Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)"},"nr2":{"type":"integer","description":"Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)"},"nr3":{"type":"integer","description":"Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)"},"nr1s":{"type":"integer","description":"Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )"},"nr2s":{"type":"integer","description":"Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )"},"nr3s":{"type":"integer","description":"Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )"},"nosym":{"type":"boolean","default":false},"nosym_evc":{"type":"boolean","default":false},"noinv":{"type":"boolean","default":false,"description":"if (.TRUE.) disable the usage of k => -k symmetry (time reversal) in k-point generation"},"no_t_rev":{"type":"boolean","default":false,"description":"if (.TRUE.) disable the usage of magnetic symmetry operations that consist in a rotation + time reversal."},"force_symmorphic":{"type":"boolean","default":false,"description":"if (.TRUE.) force the symmetry group to be symmorphic by disabling symmetry operations having an associated fractionary translation"},"use_all_frac":{"type":"boolean","default":false},"occupations":{"type":"string","enum":["smearing","tetrahedra","tetrahedra_lin","tetrahedra_opt","fixed","from_input"]},"one_atom_occupations":{"type":"boolean","default":false},"starting_spin_angle":{"type":"boolean","default":false},"degauss_cond":{"type":"number","default":0,"description":"value of the gaussian spreading (Ry) for brillouin-zone integration in the conduction manifold in a two-chemical potential calculation (twochem=.true.)."},"nelec_cond":{"type":"number","default":0,"description":"Number of electrons placed in the conduction manifold in a two-chemical potential calculation (twochem=.true.). Of the total # of electrons nelec, nelec-nelec_cond will occupy the valence manifold and nelec_cond will be constrained in the conduction manifold."},"degauss":{"type":"number","default":0,"description":"value of the gaussian spreading (Ry) for brillouin-zone integration in metals."},"smearing":{"type":"string","enum":["gaussian","gauss","methfessel-paxton","m-p","mp","marzari-vanderbilt","cold","m-v","mv","fermi-dirac","f-d","fd"],"default":"gaussian"},"nspin":{"type":"integer","default":1},"sic_gamma":{"type":"number","default":0,"description":"Strength of the gammaDFT potential."},"pol_type":{"type":"string","enum":["e","h"],"description":"Type of polaron in gammaDFT."},"sic_energy":{"type":"boolean","default":false,"description":"Enable the calculation of the total energy in gammaDFT. When .true., a preliminary calculation is performed to calculate the electron density in the absence of the polaron. When .false., the total energy printed in output should not be considered. For structural relaxations, it is recommended to use .false. to avoid doubling the computational cost."},"sci_vb":{"type":"number","default":0,"description":"Valence band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted."},"sci_cb":{"type":"number","default":0,"description":"Conduction band band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted."},"noncolin":{"type":"boolean","default":false,"description":"if .true. the program will perform a noncollinear calculation."},"ecfixed":{"type":"number","default":0},"qcutz":{"type":"number","default":0},"q2sigma":{"type":"number","default":0.1},"input_dft":{"type":"string","description":"Exchange-correlation functional: eg 'PBE', 'BLYP' etc See Modules/funct.f90 for allowed values. Overrides the value read from pseudopotential files. Use with care and if you know what you are doing!"},"ace":{"type":"boolean","default":true,"description":"Use Adaptively Compressed Exchange operator as in Lin Lin, J. Chem. Theory Comput. 2016, 12, 2242--2249, doi:10.1021/acs.jctc.6b00092"},"exx_fraction":{"type":"number","description":"Fraction of EXX for hybrid functional calculations. In the case of input_dft='PBE0', the default value is 0.25, while for input_dft='B3LYP' the exx_fraction default value is 0.20."},"screening_parameter":{"type":"number","default":0.106,"description":"screening_parameter for HSE like hybrid functionals."},"exxdiv_treatment":{"type":"string","default":"gygi-baldereschi","enum":["gygi-baldereschi","vcut_spherical","vcut_ws","none"]},"x_gamma_extrapolation":{"type":"boolean","default":true,"description":"Specific for EXX. If .true., extrapolate the G=0 term of the potential"},"ecutvcut":{"type":"number","description":"Reciprocal space cutoff for correcting Coulomb potential divergencies at small q vectors."},"nqx1":{"type":"integer","default":0,"description":"Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points."},"nqx2":{"type":"integer","description":"Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points."},"nqx3":{"type":"integer","description":"Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points."},"localization_thr":{"type":"number","default":0,"description":"Overlap threshold over which the exchange integral over a pair of localized orbitals is included in the evaluation of EXX operator. Any value greater than 0.0 triggers the SCDM localization and the evaluation on EXX using the localized orbitals. Very small value of the threshold should yield the same result as the default EXX evaluation"},"Hubbard_occ":{"type":"array","items":{"type":"array","minItems":3,"maxItems":3,"items":[{"type":"integer","minimum":1},{"type":"integer","minimum":1,"maximum":3},{"type":"number"}]}},"Hubbard_alpha":{"type":"array","items":{"type":"number","default":0}},"Hubbard_beta":{"type":"array","items":{"type":"number","default":0}},"starting_ns_eigenvalue":{"type":"array","items":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"dmft":{"type":"boolean","default":false,"description":"If true, nscf calculation will exit in restart mode, scf calculation will restart from there if DMFT updates are provided as hdf5 archive. Scf calculation should be used only with electron_maxstep = 1."},"dmft_prefix":{"type":"string","description":"prepended to hdf5 archive: dmft_prefix.h5"},"ensemble_energies":{"type":"boolean","default":false,"description":"If ensemble_energies = .true., an ensemble of xc energies is calculated non-selfconsistently for perturbed exchange-enhancement factors and LDA vs. PBE correlation ratios after each converged electronic ground state calculation."},"edir":{"type":"integer","description":"The direction of the electric field or dipole correction is parallel to the bg(:,edir) reciprocal lattice vector, so the potential is constant in planes defined by FFT grid points; edir = 1, 2 or 3. Used only if tefield is .TRUE."},"emaxpos":{"type":"number","default":0.5,"description":"Position of the maximum of the saw-like potential along crystal axis edir, within the unit cell (see below), 0 < emaxpos < 1 Used only if tefield is .TRUE."},"eopreg":{"type":"number","default":0.1,"description":"Zone in the unit cell where the saw-like potential decreases. ( see below, 0 < eopreg < 1 ). Used only if tefield is .TRUE."},"eamp":{"type":"number","default":0.001},"angle1":{"type":"array","maxItems":1,"minItems":1,"description":"The angle expressed in degrees between the initial magnetization and the z-axis. For noncollinear calculations only; index i runs over the atom types.","items":{"type":"number"}},"angle2":{"type":"array","maxItems":1,"minItems":1,"description":"The angle expressed in degrees between the projection of the initial magnetization on x-y plane and the x-axis. For noncollinear calculations only.","items":{"type":"number"}},"lforcet":{"type":"boolean","description":"When starting a non collinear calculation using an existing density file from a collinear lsda calculation assumes previous density points in z direction and rotates it in the direction described by angle1 and angle2 variables for atomic type 1"},"constrained_magnetization":{"type":"string","enum":["none","total","atomic","total direction","atomic direction"],"default":"none","description":"Used to perform constrained calculations in magnetic systems."},"fixed_magnetization":{"type":"array","maxItems":3,"minItems":3,"items":{"type":"number","default":0}},"lambda":{"type":"number","default":1,"description":"parameter used for constrained_magnetization calculations N.B.: if the scf calculation does not converge, try to reduce lambda to obtain convergence, then restart the run with a larger lambda"},"report":{"type":"integer","default":-1,"description":"determines when atomic magnetic moments are printed on output"},"lspinorb":{"type":"boolean","description":"if .TRUE. the noncollinear code can use a pseudopotential with spin-orbit."},"assume_isolated":{"type":"string","enum":["none","makov-payne","m-p","mp","martyna-tuckerman","m-t","mt","esm","2D"],"default":"none","description":"Used to perform calculation assuming the system to be isolated (a molecule or a cluster in a 3D supercell)"},"esm_bc":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"esm_w":{"type":"number","default":0,"description":"If assume_isolated = 'esm', determines the position offset [in a.u.] of the start of the effective screening region, measured relative to the cell edge. (ESM region begins at z = +/- [L_z/2 + esm_w] )."},"esm_efield":{"type":"number","default":0,"description":"If assume_isolated = 'esm' and esm_bc = 'bc2', gives the magnitude of the electric field [Ry/a.u.] to be applied between semi-infinite ESM electrodes."},"esm_nfit":{"type":"integer","default":4,"description":"If assume_isolated = 'esm', gives the number of z-grid points for the polynomial fit along the cell edge."},"lgcscf":{"type":"boolean","default":false,"description":"If .TRUE. perform a constant bias potential (constant-mu) calculation with Grand-Canonical SCF."},"gcscf_mu":{"type":"number","description":"The target Fermi energy (eV) of GC-SCF. One can start with appropriate total charge of the system by giving tot_charge"},"gcscf_conv_thr":{"type":"number","default":0.01,"description":"Convergence threshold of Fermi energy (eV) for GC-SCF."},"gcscf_beta":{"type":"number","default":0.05,"description":"Mixing factor for GC-SCF. Larger values are recommended, if systems with small DOS on Fermi surface as graphite."},"vdw_corr":{"type":"string","enum":["none","grimme-d2","Grimme-D2","DFT-D","dft-d","grimme-d3","Grimme-D3","DFT-D3","dft-d3","TS","ts","ts-vdw","ts-vdW","tkatchenko-scheffler","MBD","mbd","many-body-dispersion","mbd_vdw","XDM","xdm"],"default":"none","description":"Type of Van der Waals correction"},"london":{"type":"boolean","default":false,"description":"OBSOLESCENT, same as vdw_corr='DFT-D'"},"london_s6":{"type":"number","default":0.75,"description":"global scaling parameter for DFT-D. Default is good for PBE."},"london_c6":{"type":"number","description":"atomic C6 coefficient of each atom type"},"london_rvdw":{"type":"number","description":"atomic vdw radii of each atom type"},"london_rcut":{"type":"number","default":200,"description":"cutoff radius (a.u.) for dispersion interactions"},"dftd3_version":{"type":"integer","default":3,"minimum":2,"maximum":6,"description":"Version of Grimme implementation of Grimme-D3"},"dftd3_threebody":{"type":"boolean","default":true,"description":"Turn three-body terms in Grimme-D3 on. If .false. two-body contributions only are computed, using two-body parameters of Grimme-D3. If dftd3_version=2, three-body contribution is always disabled."},"ts_vdw_econv_thr":{"type":"number","default":0.000001,"description":"Optional: controls the convergence of the vdW energy (and forces). The default value is a safe choice, likely too safe, but you do not gain much in increasing it"},"ts_vdw_isolated":{"type":"boolean","default":false,"description":"Optional: set it to .TRUE. when computing the Tkatchenko-Scheffler vdW energy or the Many-Body dispersion (MBD) energy for an isolated (non-periodic) system."},"xdm":{"type":"boolean","default":false,"description":"OBSOLESCENT, same as vdw_corr='xdm'"},"xdm_a1":{"type":"number","default":0.6836,"description":"Damping function parameter a1 (adimensional)"},"xdm_a2":{"type":"number","default":1.5045,"description":"Damping function parameter a2 (angstrom)"},"space_group":{"type":"integer","default":0,"description":"The number of the space group of the crystal, as given in the International Tables of Crystallography A (ITA)"},"uniqueb":{"type":"boolean","default":false,"description":"Used only for monoclinic lattices"},"origin_choice":{"type":"integer","default":1,"description":"Used only for space groups that in the ITA allow the use of two different origins"},"rhombohedral":{"type":"boolean","default":true,"description":"Used only for rhombohedral space groups."},"zgate":{"type":"number","default":0.5,"description":"used only if gate = .TRUE."},"relaxz":{"type":"boolean","default":false,"description":"used only if gate = .TRUE."},"block":{"type":"boolean","default":false,"description":"used only if gate = .TRUE."},"block_1":{"type":"number","default":0.45,"description":"used only if gate = .TRUE. and block = .TRUE."},"block_2":{"type":"number","default":0.55,"description":"used only if gate = .TRUE. and block = .TRUE."},"block_height":{"type":"number","default":0.1,"description":"used only if gate = .TRUE. and block = .TRUE."},"nextffield":{"type":"integer","default":0,"description":"Number of activated external ionic force fields."}}},{"$id":"apse/file/applications/espresso/7.2/pw.x","$schema":"http://json-schema.org/draft-07/schema#","title":"pwx main schema","type":"object","additionalProperties":false,"properties":{"&CONTROL":{"$schema":"http://json-schema.org/draft-07/schema#","title":"control schema","type":"object","additionalProperties":false,"properties":{"calculation":{"description":"A string describing the task to be performed","type":"string","enum":["scf","nscf","bands","relax","md","vc-relax","vc-md"],"default":"scf"},"title":{"description":"reprinted on output.","type":"string","default":""},"verbosity":{"description":"Currently two verbosity levels are implemented: high, low. 'debug' and 'medium' have the same effect as 'high'; 'default' and 'minimal' as 'low'","type":"string","enum":["high","low","debug","medium","minimal","default"],"default":"low"},"restart_mode":{"type":"string","enum":["from_scratch","restart"],"default":"from_scratch"},"wf_collect":{"type":"boolean","description":"OBSOLETE - NO LONGER IMPLEMENTED"},"nstep":{"description":"Default: 1 if calculation == 'scf', 'nscf', 'bands'; 50 for the other cases; Number of molecular-dynamics or structural optimization steps performed in this run. If set to 0, the code performs a quick \"dry run\", stopping just after initialization. This is useful to check for input correctness and to have the summary printed. NOTE: in MD calculations, the code will perform \"nstep\" steps even if restarting from a previously interrupted calculation.","type":"number","default":1},"iprint":{"description":"band energies are written every iprint iterations","type":"number"},"tstress":{"type":"boolean","default":false,"description":"calculate stress. It is set to .TRUE. automatically if calculation == 'vc-md' or 'vc-relax'"},"tprnfor":{"type":"boolean","description":"calculate forces. It is set to .TRUE. automatically if calculation == 'relax','md','vc-md'"},"dt":{"type":"number","description":"time step for molecular dynamics, in Rydberg atomic units (1 a.u.=4.8378 * 10^-17 s : beware, the CP code uses Hartree atomic units, half that much!!!)","default":20},"outdir":{"type":"string","description":"input, temporary, output files are found in this directory, see also wfcdir"},"wfcdir":{"type":"string","description":"This directory specifies where to store files generated by each processor (*.wfc{N}, *.igk{N}, etc.). Useful for machines without a parallel file system: set wfcdir to a local file system, while outdir should be a parallel or network file system, visible to all processors. Beware: in order to restart from interrupted runs, or to perform further calculations using the produced data files, you may need to copy files to outdir. Works only for pw.x."},"prefix":{"type":"string","description":"prepended to input/output filenames: prefix.wfc, prefix.rho, etc.","default":"pwscf"},"lkpoint_dir":{"type":"boolean","description":"OBSOLETE - NO LONGER IMPLEMENTED"},"max_seconds":{"type":"number","default":10000000,"description":"Jobs stops after max_seconds CPU time. Use this option in conjunction with option restart_mode if you need to split a job too long to complete into shorter jobs that fit into your batch queues."},"etot_conv_thr":{"type":"number","default":0.0001,"description":"Convergence threshold on total energy (a.u) for ionic minimization: the convergence criterion is satisfied when the total energy changes less than etot_conv_thr between two consecutive scf steps. Note that etot_conv_thr is extensive, like the total energy. See also forc_conv_thr - both criteria must be satisfied"},"forc_conv_thr":{"type":"number","default":0.001,"description":"Convergence threshold on forces (a.u) for ionic minimization: the convergence criterion is satisfied when all components of all forces are smaller than forc_conv_thr. See also etot_conv_thr - both criteria must be satisfied"},"disk_io":{"type":"string","enum":["high","medium","low","nowf","none"],"description":"Specifies the amount of disk I/O activity: (only for binary files and xml data file in data directory; other files printed at each molecular dynamics / structural optimization step are not controlled by this option )"},"pseudo_dir":{"type":"string","description":"directory containing pseudopotential files. Default: value of the $ESPRESSO_PSEUDO environment variable if set; '$HOME/espresso/pseudo/' otherwise"},"tefield":{"type":"boolean","default":false,"description":"If .TRUE. a saw-like potential simulating an electric field is added to the bare ionic potential. See variables edir, eamp, emaxpos, eopreg for the form and size of the added potential."},"dipfield":{"type":"boolean","default":false,"description":"If .TRUE. and tefield==.TRUE. a dipole correction is also added to the bare ionic potential - implements the recipe of L. Bengtsson, PRB 59, 12301 (1999). See variables edir, emaxpos, eopreg for the form of the correction. Must be used ONLY in a slab geometry, for surface calculations, with the discontinuity FALLING IN THE EMPTY SPACE."},"lelfield":{"type":"boolean","default":false,"description":"If .TRUE. a homogeneous finite electric field described through the modern theory of the polarization is applied. This is different from tefield == .true. !"},"nberrycyc":{"type":"integer","default":1,"description":"In the case of a finite electric field ( lelfield == .TRUE. ) it defines the number of iterations for converging the wavefunctions in the electric field Hamiltonian, for each external iteration on the charge density"},"lorbm":{"type":"boolean","default":false,"description":"If .TRUE. perform orbital magnetization calculation."},"lberry":{"type":"boolean","default":false,"description":"If .TRUE. perform a Berry phase calculation. See the header of PW/src/bp_c_phase.f90 for documentation"},"gdir":{"type":"number","description":"For Berry phase calculation: direction of the k-point strings in reciprocal space. Allowed values: 1, 2, 3 1=first, 2=second, 3=third reciprocal lattice vector For calculations with finite electric fields (lelfield==.true.) \"gdir\" is the direction of the field."},"nppstr":{"type":"number","description":"For Berry phase calculation: number of k-points to be calculated along each symmetry-reduced string. The same for calculation with finite electric fields (lelfield==.true.)."},"gate":{"type":"boolean","default":false,"description":"In the case of charged cells (tot_charge .ne. 0) setting gate = .TRUE. represents the counter charge (i.e. -tot_charge) not by a homogeneous background charge but with a charged plate, which is placed at zgate (see below). Details of the gate potential can be found in T. Brumme, M. Calandra, F. Mauri; PRB 89, 245406 (2014). Note, that in systems which are not symmetric with respect to the plate, one needs to enable the dipole correction! (dipfield=.true.). Currently, symmetry can be used with gate=.true. but carefully check that no symmetry is included which maps z to -z even if in principle one could still use them for symmetric systems (i.e. no dipole correction). For nosym=.false. verbosity is set to 'high'. Note: this option was called \"monopole\" in v6.0 and 6.1 of pw.x"},"twochem":{"type":"boolean","default":false,"description":"IF .TRUE. , a two chemical potential calculation for the simulation of photoexcited systems is performed, constraining a fraction of the electrons in the conduction manifold."},"lfcp":{"type":"boolean","default":false,"description":"If .TRUE. perform a constant bias potential (constant-mu) calculation for a system with ESM method. See the header of PW/src/fcp_module.f90 for documentation. To perform the calculation, you must set a namelist FCP."},"trism":{"type":"boolean","default":false,"description":"If .TRUE. perform a 3D-RISM-SCF calculation [for details see H.Sato et al., JCP 112, 9463 (2000), doi:10.1063/1.481564]. The solvent's distributions are calculated by 3D-RISM, though solute is treated as SCF. The charge density and the atomic positions are optimized, simultaneously with the solvents. To perform the calculation, you must set a namelist RISM and a card SOLVENTS. If assume_isolated = 'esm' and esm_bc = 'bc1', Laue-RISM is calculated instead of 3D-RISM and coupled with ESM method (i.e. ESM-RISM). [for details see S.Nishihara and M.Otani, PRB 96, 115429 (2017)]. The default of mixing_beta is 0.2 for both 3D-RISM and Laue-RISM. For structural relaxation with BFGS, ignore_wolfe is always .TRUE. ."}}},"&SYSTEM":{"$schema":"http://json-schema.org/draft-07/schema#","title":"system schema","type":"object","anyOf":[{"properties":{"celldm":{"type":"array","minItems":6,"maxItems":6,"items":{"type":"number"}}}},{"properties":{"A":{"type":"number"},"B":{"type":"number"},"C":{"type":"number"},"cosAB":{"type":"number"},"cosAC":{"type":"number"},"cosBC":{"type":"number"}}}],"required":["ibrav","nat","ntyp","ecutwfc"],"additionalProperties":false,"properties":{"ibrav":{"type":"integer"},"nat":{"type":"integer","description":"number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms)"},"ntyp":{"type":"integer","description":"number of types of atoms in the unit cell"},"nbnd":{"type":"integer","description":"Default: for an insulator, nbnd = number of valence bands (nbnd = # of electrons /2); for a metal, 20% more (minimum 4 more)"},"nbnd_cond":{"type":"integer","description":"Default: nbnd_cond = nbnd - # of electrons / 2 in the collinear case; nbnd_cond = nbnd - # of electrons in the noncollinear case."},"tot_charge":{"type":"number","default":0},"starting_charge":{"type":"number","default":0,"description":"starting charge on atomic type 'i', to create starting potential with startingpot = 'atomic'."},"tot_magnetization":{"type":"number","default":-10000,"description":"Total majority spin charge - minority spin charge. Used to impose a specific total electronic magnetization. If unspecified then tot_magnetization variable is ignored and the amount of electronic magnetization is determined during the self-consistent cycle."},"starting_magnetization":{"type":"array","items":{"type":"number","default":0,"minimum":-1,"maximum":1}},"ecutwfc":{"type":"number","description":"kinetic energy cutoff (Ry) for wavefunctions"},"ecutrho":{"type":"number","description":"Kinetic energy cutoff (Ry) for charge density and potential For norm-conserving pseudopotential you should stick to the default value, you can reduce it by a little but it will introduce noise especially on forces and stress. Default: 4 * ecutwfc"},"ecutfock":{"type":"number","description":"Kinetic energy cutoff (Ry) for the exact exchange operator in EXX type calculations. By default this is the same as ecutrho but in some EXX calculations, a significant speed-up can be obtained by reducing ecutfock, at the expense of some loss in accuracy. Must be .gt. ecutwfc. Not implemented for stress calculation and for US-PP and PAW pseudopotentials."},"nr1":{"type":"integer","description":"Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)"},"nr2":{"type":"integer","description":"Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)"},"nr3":{"type":"integer","description":"Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)"},"nr1s":{"type":"integer","description":"Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )"},"nr2s":{"type":"integer","description":"Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )"},"nr3s":{"type":"integer","description":"Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )"},"nosym":{"type":"boolean","default":false},"nosym_evc":{"type":"boolean","default":false},"noinv":{"type":"boolean","default":false,"description":"if (.TRUE.) disable the usage of k => -k symmetry (time reversal) in k-point generation"},"no_t_rev":{"type":"boolean","default":false,"description":"if (.TRUE.) disable the usage of magnetic symmetry operations that consist in a rotation + time reversal."},"force_symmorphic":{"type":"boolean","default":false,"description":"if (.TRUE.) force the symmetry group to be symmorphic by disabling symmetry operations having an associated fractionary translation"},"use_all_frac":{"type":"boolean","default":false},"occupations":{"type":"string","enum":["smearing","tetrahedra","tetrahedra_lin","tetrahedra_opt","fixed","from_input"]},"one_atom_occupations":{"type":"boolean","default":false},"starting_spin_angle":{"type":"boolean","default":false},"degauss_cond":{"type":"number","default":0,"description":"value of the gaussian spreading (Ry) for brillouin-zone integration in the conduction manifold in a two-chemical potential calculation (twochem=.true.)."},"nelec_cond":{"type":"number","default":0,"description":"Number of electrons placed in the conduction manifold in a two-chemical potential calculation (twochem=.true.). Of the total # of electrons nelec, nelec-nelec_cond will occupy the valence manifold and nelec_cond will be constrained in the conduction manifold."},"degauss":{"type":"number","default":0,"description":"value of the gaussian spreading (Ry) for brillouin-zone integration in metals."},"smearing":{"type":"string","enum":["gaussian","gauss","methfessel-paxton","m-p","mp","marzari-vanderbilt","cold","m-v","mv","fermi-dirac","f-d","fd"],"default":"gaussian"},"nspin":{"type":"integer","default":1},"sic_gamma":{"type":"number","default":0,"description":"Strength of the gammaDFT potential."},"pol_type":{"type":"string","enum":["e","h"],"description":"Type of polaron in gammaDFT."},"sic_energy":{"type":"boolean","default":false,"description":"Enable the calculation of the total energy in gammaDFT. When .true., a preliminary calculation is performed to calculate the electron density in the absence of the polaron. When .false., the total energy printed in output should not be considered. For structural relaxations, it is recommended to use .false. to avoid doubling the computational cost."},"sci_vb":{"type":"number","default":0,"description":"Valence band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted."},"sci_cb":{"type":"number","default":0,"description":"Conduction band band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted."},"noncolin":{"type":"boolean","default":false,"description":"if .true. the program will perform a noncollinear calculation."},"ecfixed":{"type":"number","default":0},"qcutz":{"type":"number","default":0},"q2sigma":{"type":"number","default":0.1},"input_dft":{"type":"string","description":"Exchange-correlation functional: eg 'PBE', 'BLYP' etc See Modules/funct.f90 for allowed values. Overrides the value read from pseudopotential files. Use with care and if you know what you are doing!"},"ace":{"type":"boolean","default":true,"description":"Use Adaptively Compressed Exchange operator as in Lin Lin, J. Chem. Theory Comput. 2016, 12, 2242--2249, doi:10.1021/acs.jctc.6b00092"},"exx_fraction":{"type":"number","description":"Fraction of EXX for hybrid functional calculations. In the case of input_dft='PBE0', the default value is 0.25, while for input_dft='B3LYP' the exx_fraction default value is 0.20."},"screening_parameter":{"type":"number","default":0.106,"description":"screening_parameter for HSE like hybrid functionals."},"exxdiv_treatment":{"type":"string","default":"gygi-baldereschi","enum":["gygi-baldereschi","vcut_spherical","vcut_ws","none"]},"x_gamma_extrapolation":{"type":"boolean","default":true,"description":"Specific for EXX. If .true., extrapolate the G=0 term of the potential"},"ecutvcut":{"type":"number","description":"Reciprocal space cutoff for correcting Coulomb potential divergencies at small q vectors."},"nqx1":{"type":"integer","default":0,"description":"Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points."},"nqx2":{"type":"integer","description":"Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points."},"nqx3":{"type":"integer","description":"Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points."},"localization_thr":{"type":"number","default":0,"description":"Overlap threshold over which the exchange integral over a pair of localized orbitals is included in the evaluation of EXX operator. Any value greater than 0.0 triggers the SCDM localization and the evaluation on EXX using the localized orbitals. Very small value of the threshold should yield the same result as the default EXX evaluation"},"Hubbard_occ":{"type":"array","items":{"type":"array","minItems":3,"maxItems":3,"items":[{"type":"integer","minimum":1},{"type":"integer","minimum":1,"maximum":3},{"type":"number"}]}},"Hubbard_alpha":{"type":"array","items":{"type":"number","default":0}},"Hubbard_beta":{"type":"array","items":{"type":"number","default":0}},"starting_ns_eigenvalue":{"type":"array","items":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"dmft":{"type":"boolean","default":false,"description":"If true, nscf calculation will exit in restart mode, scf calculation will restart from there if DMFT updates are provided as hdf5 archive. Scf calculation should be used only with electron_maxstep = 1."},"dmft_prefix":{"type":"string","description":"prepended to hdf5 archive: dmft_prefix.h5"},"ensemble_energies":{"type":"boolean","default":false,"description":"If ensemble_energies = .true., an ensemble of xc energies is calculated non-selfconsistently for perturbed exchange-enhancement factors and LDA vs. PBE correlation ratios after each converged electronic ground state calculation."},"edir":{"type":"integer","description":"The direction of the electric field or dipole correction is parallel to the bg(:,edir) reciprocal lattice vector, so the potential is constant in planes defined by FFT grid points; edir = 1, 2 or 3. Used only if tefield is .TRUE."},"emaxpos":{"type":"number","default":0.5,"description":"Position of the maximum of the saw-like potential along crystal axis edir, within the unit cell (see below), 0 < emaxpos < 1 Used only if tefield is .TRUE."},"eopreg":{"type":"number","default":0.1,"description":"Zone in the unit cell where the saw-like potential decreases. ( see below, 0 < eopreg < 1 ). Used only if tefield is .TRUE."},"eamp":{"type":"number","default":0.001},"angle1":{"type":"array","maxItems":1,"minItems":1,"description":"The angle expressed in degrees between the initial magnetization and the z-axis. For noncollinear calculations only; index i runs over the atom types.","items":{"type":"number"}},"angle2":{"type":"array","maxItems":1,"minItems":1,"description":"The angle expressed in degrees between the projection of the initial magnetization on x-y plane and the x-axis. For noncollinear calculations only.","items":{"type":"number"}},"lforcet":{"type":"boolean","description":"When starting a non collinear calculation using an existing density file from a collinear lsda calculation assumes previous density points in z direction and rotates it in the direction described by angle1 and angle2 variables for atomic type 1"},"constrained_magnetization":{"type":"string","enum":["none","total","atomic","total direction","atomic direction"],"default":"none","description":"Used to perform constrained calculations in magnetic systems."},"fixed_magnetization":{"type":"array","maxItems":3,"minItems":3,"items":{"type":"number","default":0}},"lambda":{"type":"number","default":1,"description":"parameter used for constrained_magnetization calculations N.B.: if the scf calculation does not converge, try to reduce lambda to obtain convergence, then restart the run with a larger lambda"},"report":{"type":"integer","default":-1,"description":"determines when atomic magnetic moments are printed on output"},"lspinorb":{"type":"boolean","description":"if .TRUE. the noncollinear code can use a pseudopotential with spin-orbit."},"assume_isolated":{"type":"string","enum":["none","makov-payne","m-p","mp","martyna-tuckerman","m-t","mt","esm","2D"],"default":"none","description":"Used to perform calculation assuming the system to be isolated (a molecule or a cluster in a 3D supercell)"},"esm_bc":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"esm_w":{"type":"number","default":0,"description":"If assume_isolated = 'esm', determines the position offset [in a.u.] of the start of the effective screening region, measured relative to the cell edge. (ESM region begins at z = +/- [L_z/2 + esm_w] )."},"esm_efield":{"type":"number","default":0,"description":"If assume_isolated = 'esm' and esm_bc = 'bc2', gives the magnitude of the electric field [Ry/a.u.] to be applied between semi-infinite ESM electrodes."},"esm_nfit":{"type":"integer","default":4,"description":"If assume_isolated = 'esm', gives the number of z-grid points for the polynomial fit along the cell edge."},"lgcscf":{"type":"boolean","default":false,"description":"If .TRUE. perform a constant bias potential (constant-mu) calculation with Grand-Canonical SCF."},"gcscf_mu":{"type":"number","description":"The target Fermi energy (eV) of GC-SCF. One can start with appropriate total charge of the system by giving tot_charge"},"gcscf_conv_thr":{"type":"number","default":0.01,"description":"Convergence threshold of Fermi energy (eV) for GC-SCF."},"gcscf_beta":{"type":"number","default":0.05,"description":"Mixing factor for GC-SCF. Larger values are recommended, if systems with small DOS on Fermi surface as graphite."},"vdw_corr":{"type":"string","enum":["none","grimme-d2","Grimme-D2","DFT-D","dft-d","grimme-d3","Grimme-D3","DFT-D3","dft-d3","TS","ts","ts-vdw","ts-vdW","tkatchenko-scheffler","MBD","mbd","many-body-dispersion","mbd_vdw","XDM","xdm"],"default":"none","description":"Type of Van der Waals correction"},"london":{"type":"boolean","default":false,"description":"OBSOLESCENT, same as vdw_corr='DFT-D'"},"london_s6":{"type":"number","default":0.75,"description":"global scaling parameter for DFT-D. Default is good for PBE."},"london_c6":{"type":"number","description":"atomic C6 coefficient of each atom type"},"london_rvdw":{"type":"number","description":"atomic vdw radii of each atom type"},"london_rcut":{"type":"number","default":200,"description":"cutoff radius (a.u.) for dispersion interactions"},"dftd3_version":{"type":"integer","default":3,"minimum":2,"maximum":6,"description":"Version of Grimme implementation of Grimme-D3"},"dftd3_threebody":{"type":"boolean","default":true,"description":"Turn three-body terms in Grimme-D3 on. If .false. two-body contributions only are computed, using two-body parameters of Grimme-D3. If dftd3_version=2, three-body contribution is always disabled."},"ts_vdw_econv_thr":{"type":"number","default":0.000001,"description":"Optional: controls the convergence of the vdW energy (and forces). The default value is a safe choice, likely too safe, but you do not gain much in increasing it"},"ts_vdw_isolated":{"type":"boolean","default":false,"description":"Optional: set it to .TRUE. when computing the Tkatchenko-Scheffler vdW energy or the Many-Body dispersion (MBD) energy for an isolated (non-periodic) system."},"xdm":{"type":"boolean","default":false,"description":"OBSOLESCENT, same as vdw_corr='xdm'"},"xdm_a1":{"type":"number","default":0.6836,"description":"Damping function parameter a1 (adimensional)"},"xdm_a2":{"type":"number","default":1.5045,"description":"Damping function parameter a2 (angstrom)"},"space_group":{"type":"integer","default":0,"description":"The number of the space group of the crystal, as given in the International Tables of Crystallography A (ITA)"},"uniqueb":{"type":"boolean","default":false,"description":"Used only for monoclinic lattices"},"origin_choice":{"type":"integer","default":1,"description":"Used only for space groups that in the ITA allow the use of two different origins"},"rhombohedral":{"type":"boolean","default":true,"description":"Used only for rhombohedral space groups."},"zgate":{"type":"number","default":0.5,"description":"used only if gate = .TRUE."},"relaxz":{"type":"boolean","default":false,"description":"used only if gate = .TRUE."},"block":{"type":"boolean","default":false,"description":"used only if gate = .TRUE."},"block_1":{"type":"number","default":0.45,"description":"used only if gate = .TRUE. and block = .TRUE."},"block_2":{"type":"number","default":0.55,"description":"used only if gate = .TRUE. and block = .TRUE."},"block_height":{"type":"number","default":0.1,"description":"used only if gate = .TRUE. and block = .TRUE."},"nextffield":{"type":"integer","default":0,"description":"Number of activated external ionic force fields."}}},"&ELECTRONS":{"$schema":"http://json-schema.org/draft-07/schema#","title":"electrons schema","type":"object","additionalProperties":false,"properties":{"electron_maxstep":{"type":"integer","default":100,"description":"maximum number of iterations in a scf step. If exact exchange is active, this will affect the inner loops."},"exx_maxstep":{"type":"integer","default":100,"description":"maximum number of outer iterations in a scf calculation with exact exchange."},"scf_must_converge":{"type":"boolean","default":true,"description":"If .false. do not stop molecular dynamics or ionic relaxation when electron_maxstep is reached. Use with care."},"conv_thr":{"type":"number"},"adaptive_thr":{"type":"boolean","default":false,"description":"If .TRUE. this turns on the use of an adaptive conv_thr for the inner scf loops when using EXX."},"conv_thr_init":{"type":"number","description":"When adaptive_thr = .TRUE. this is the convergence threshold used for the first scf cycle."},"conv_thr_multi":{"type":"number","description":"When adaptive_thr = .TRUE. the convergence threshold for each scf cycle is given by: max( conv_thr, conv_thr_multi * dexx )"},"mixing_mode":{"type":"string","enum":["plain","TF","local-TF"],"default":"plain"},"mixing_beta":{"type":"number","description":"mixing factor for self-consistency"},"mixing_ndim":{"type":"integer","default":8,"description":"number of iterations used in mixing scheme"},"mixing_fixed_ns":{"type":"integer","default":0,"description":"For DFT+U : number of iterations with fixed ns ( ns is the atomic density appearing in the Hubbard term )."},"diagonalization":{"type":"string","enum":["david","cg","ppcg","paro","ParO","rmm-davidson","rmm-paro"],"default":"david"},"diago_thr_init":{"type":"number","description":"Convergence threshold (ethr) for iterative diagonalization (the check is on eigenvalue convergence)."},"diago_cg_maxiter":{"type":"integer","description":"For conjugate gradient diagonalization: max number of iterations"},"diago_ppcg_maxiter":{"type":"integer","description":"For ppcg diagonalization: max number of iterations"},"diago_david_ndim":{"type":"integer","default":2,"description":"For Davidson diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed)."},"diago_rmm_ndim":{"type":"integer","default":4,"description":"For RMM-DIIS diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed)."},"diago_rmm_conv":{"type":"boolean","default":false,"description":"If .TRUE., RMM-DIIS is performed up to converge. If .FALSE., RMM-DIIS is performed only once."},"diago_gs_nblock":{"type":"integer","default":16,"description":"For RMM-DIIS diagonalization: blocking size of Gram-Schmidt orthogonalization"},"diago_full_acc":{"type":"boolean","default":false,"description":"If .TRUE. all the empty states are diagonalized at the same level of accuracy of the occupied ones. Otherwise the empty states are diagonalized using a larger threshold (this should not affect total energy, forces, and other ground-state properties)."},"efield":{"type":"number","description":"Amplitude of the finite electric field (in Ry a.u.; 1 a.u. = 36.3609*10^10 V/m). Used only if lelfield==.TRUE. and if k-points (K_POINTS card) are not automatic."},"efield_cart":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"efield_phase":{"type":"string","enum":["read","write","none"],"default":"none"},"startingpot":{"type":"string","enum":["atomic","file"]},"startingwfc":{"type":"string","enum":["atomic","atomic+random","random","file"],"default":"atomic+random"},"tqr":{"type":"boolean","default":false,"description":"If .true., use a real-space algorithm for augmentation charges of ultrasoft pseudopotentials and PAWsets. Faster but numerically less accurate than the default G-space algorithm. Use with care and after testing!"},"real_space":{"type":"boolean","default":false,"description":"If .true., exploit real-space localization to compute matrix elements for nonlocal projectors. Faster and in principle better scaling than the default G-space algorithm, but numerically less accurate, may lead to some loss of translational invariance. Use with care and after testing!"}}},"&IONS":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"ions schema","type":"object","additionalProperties":false,"oneOf":[{"type":"object","additionalProperties":false,"properties":{"ion_dynamics":{"type":"string","enum":["bfgs","damp","fire"],"default":"bfgs","description":"CASE: calculation == 'relax'"}}},{"type":"object","additionalProperties":false,"properties":{"ion_dynamics":{"type":"string","enum":["verlet","langevin","langevin-smc"],"default":"verlet","description":"CASE: calculation == 'md'"}}},{"type":"object","additionalProperties":false,"properties":{"ion_dynamics":{"type":"string","enum":["bfgs","damp"],"default":"bfgs","description":"CASE: calculation == 'vc-relax'"}}},{"type":"object","additionalProperties":false,"properties":{"ion_dynamics":{"type":"string","enum":["beeman"],"default":"beeman","description":"CASE: calculation == 'vc-md'"}}}],"properties":{"ion_positions":{"type":"string","enum":["default","from_input"],"default":"default"},"ion_velocities":{"type":"string","enum":["default","from_input"],"default":"default"},"pot_extrapolation":{"type":"string","enum":["none","atomic","first_order","second_order"],"default":"atomic","description":"Used to extrapolate the potential from preceding ionic steps."},"wfc_extrapolation":{"type":"string","enum":["none","first_order","second_order"],"default":"none","description":"Used to extrapolate the wavefunctions from preceding ionic steps."},"remove_rigid_rot":{"type":"boolean","default":false,"description":"This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells."},"ion_temperature":{"type":"string","enum":["rescaling","rescale-v","rescale-T","reduce-T","berendsen","andersen","svr","initial","not_controlled"],"default":"not_controlled"},"tempw":{"type":"number","description":"Starting temperature (Kelvin) in MD runs target temperature for most thermostats.","default":300},"tolp":{"type":"number","description":"Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp.","default":100},"delta_t":{"type":"number","default":1},"nraise":{"type":"integer","default":1},"refold_pos":{"type":"boolean","default":false,"description":"This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell."},"upscale":{"type":"number","description":"Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale.","default":100},"bfgs_ndim":{"type":"integer","default":1,"description":"Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm."},"trust_radius_max":{"type":"number","description":"Maximum ionic displacement in the structural relaxation. (bfgs only)","default":0.8},"trust_radius_min":{"type":"number","description":"Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only)","default":0.001},"trust_radius_ini":{"type":"number","description":"Initial ionic displacement in the structural relaxation. (bfgs only)","default":0.5},"w_1":{"type":"number","default":0.01},"w_2":{"type":"number","description":"Parameters used in line search based on the Wolfe conditions. (bfgs only)","default":0.5},"fire_alpha_init":{"type":"number","description":"Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3","default":0.2},"fire_falpha":{"type":"number","description":"Scaling of the alpha mixing parameter for steps with P > 0;","default":0.99},"fire_nmin":{"type":"integer","default":5,"description":"Minimum number of steps with P > 0 before increase of dt"},"fire_f_inc":{"type":"number","description":"Factor for increasing dt","default":1.1},"fire_f_dec":{"type":"number","description":"Factor for decreasing dt","default":0.5},"fire_dtmax":{"type":"number","description":"Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt","default":10}}},{"type":"null"}]},"&CELL":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"cell schema","type":"object","additionalProperties":false,"oneOf":[{"type":"object","additionalProperties":false,"properties":{"cell_dynamics":{"type":"string","enum":["none","sd","damp-pr","damp-w","bfgs"],"default":"bfgs","description":"CASE ( calculation == 'vc-relax' )"}}},{"type":"object","additionalProperties":false,"properties":{"cell_dynamics":{"type":"string","enum":["none","pr","w"],"description":"CASE ( calculation == 'vc-md' )"}}}],"properties":{"press":{"type":"number","description":"Target pressure [KBar] in a variable-cell md or relaxation run.","default":0},"wmass":{"type":"number","description":"Fictitious cell mass [amu] for variable-cell simulations (both 'vc-md' and 'vc-relax'). Default: 0.75*Tot_Mass/pi**2 for Parrinello-Rahman MD; 0.75*Tot_Mass/pi**2/Omega**(2/3) for Wentzcovitch MD"},"cell_factor":{"type":"number","description":"Used in the construction of the pseudopotential tables. It should exceed the maximum linear contraction of the cell during a simulation. Default: 2.0 for variable-cell calculations, 1.0 otherwise"},"press_conv_thr":{"type":"number","default":0.5,"description":"Convergence threshold on the pressure for variable cell relaxation ('vc-relax' : note that the other convergence thresholds for ionic relaxation apply as well)."},"cell_dofree":{"type":"string","enum":["all","ibrav","a","b","c","fixa","fixb","fixc","x","y","xy","xz","xyz","shape","volume","2Dxy","2Dshape","epitaxial_ab","epitaxial_ac","epitaxial_bc"],"default":"all","description":"Select which of the cell parameters should be moved"}}},{"type":"null"}]},"ATOMIC_SPECIES":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic species schema","type":"object","additionalProperties":false,"properties":{"values":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"Mass_X":{"type":"number","description":"mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"},"PseudoPot_X":{"type":"string","description":"PseudoPot_X"}}}}}},"ATOMIC_POSITIONS":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic positions schema","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1493","type":"object","additionalProperties":false,"properties":{"card_option":{"type":"string","enum":["alat","bohr","angstrom","crystal","crystal_sg"],"default":"alat"},"values":{"type":"array","items":{"type":"object","required":["x","y","z"],"additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom as specified in ATOMIC_SPECIES"},"x":{"type":"number","description":"atomic positions"},"y":{"type":"number","description":"atomic positions"},"z":{"type":"number","description":"atomic positions"},"if_pos(1)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(2)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(3)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1}}}}}},"K_POINTS":{"$schema":"http://json-schema.org/draft-07/schema#","title":"k points schema","type":"object","additionalProperties":false,"properties":{"card_option":{"type":"string","enum":["tpiba","automatic","crystal","gamma","tpiba_b","crystal_b","tpiba_c","crystal_c"]},"values":{"oneOf":[{"type":"array","description":"K_POINTS tpiba | crystal | tpiba_b | crystal_b | tpiba_c | crystal_c","items":{"type":"object","additionalProperties":false,"properties":{"nks":{"type":"integer","description":"Number of supplied special k-points."},"xk_x":{"type":"number"},"xk_y":{"type":"number"},"xk_z":{"type":"number"},"wk":{"type":"number"}}}},{"type":"object","description":"K_POINTS automatic","additionalProperties":false,"properties":{"nk1":{"type":"integer","description":"Number of supplied special k-points."},"nk2":{"type":"integer","description":"Number of supplied special k-points."},"nk3":{"type":"integer","description":"Number of supplied special k-points."},"sk1":{"type":"integer","description":"Number of supplied special k-points."},"sk2":{"type":"integer","description":"Number of supplied special k-points."},"sk3":{"type":"integer","description":"Number of supplied special k-points."}}},{"type":"null","description":"K_POINTS gamma"}]}}},"CELL_PARAMETERS":{"$schema":"http://json-schema.org/draft-07/schema#","title":"cell parameters schema","type":"object","additionalProperties":false,"properties":{"card_option":{"type":"string","enum":["alat","bohr","angstrom"],"description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"values":{"type":"object","additionalProperties":false,"properties":{"v1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}}},"HUBBARD":{"$schema":"http://json-schema.org/draft-07/schema#","title":"hubbard schema","type":"object","additionalProperties":false,"properties":{"card_option":{"type":"string","enum":["atomic","ortho-atomic","norm-atomic","wf","pseudo"]},"values":{"oneOf":[{"description":"IF DFT+U","type":"array","items":{"oneOf":[{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1764","additionalProperties":false,"properties":{"U":{"type":"string","enum":["U"],"description":"string constant \"U\"; indicates the specs for the U parameter will be given"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"u_val":{"type":"number","description":"value of the U parameter (in eV)"}}},{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1784","additionalProperties":false,"properties":{"J0":{"type":"string","enum":["J0"],"description":"string constant \"J0\"; indicates the specs for the J0 parameter will be given"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"j0_val":{"type":"number","description":"value of the J0 parameter (in eV)"}}}]}},{"description":"IF DFT+U+J","type":"array","items":{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1817","additionalProperties":false,"properties":{"paramType":{"type":"string","enum":["U","J","B","E2","E3"],"description":"character describing the type of Hubbard parameter allowed values: U, J and either B (for d-orbitals) or E2 and E3 (for f-orbitals)"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"paramValue":{"type":"number","description":"value of the J0 parameter (in eV)"}}}},{"description":"IF DFT+U+V","type":"array","items":{"oneOf":[{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1847","additionalProperties":false,"properties":{"U":{"type":"string","enum":["U"],"description":"string constant \"U\"; indicates the specs for the U parameter will be given"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"u_val":{"type":"number","description":"value of the U parameter (in eV)"}}},{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1865","additionalProperties":false,"properties":{"J0":{"type":"string","enum":["J0"],"description":"string constant \"J0\"; indicates the specs for the J0 parameter will be given"},"label":{"type":"string","description":"label of the atom (as defined in ATOMIC_SPECIES)"},"manifold":{"type":"string","description":"specs of the manifold (e.g., 3d, 2p...)"},"j0_val":{"type":"number","description":"value of the J0 parameter (in eV)"}}},{"type":"object","description":"https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1884","additionalProperties":false,"properties":{"V":{"type":"string","enum":["V"],"description":"string constant \"V\"; indicates the specs for the V parameter will be given"},"label(I)":{"type":"string","description":"label of the atom I (as defined in ATOMIC_SPECIES)"},"manifold(I)":{"type":"string","description":"specs of the manifold for atom I (e.g., 3d, 2p...)"},"label(J)":{"type":"string","description":"label of the atom J (as defined in ATOMIC_SPECIES)"},"manifold(J)":{"type":"string","description":"specs of the manifold for atom J (e.g., 3d, 2p...)"},"I":{"type":"integer","description":"index of the atom I"},"J":{"type":"integer","description":"index of the atom J"},"v_val(I,J)":{"type":"number","description":"value of the V parameter for the atom pair I,J (in eV)"}}}]}}]}}}}},{"$id":"apse/materials/builders/slab/pymatgen/parameters","$schema":"http://json-schema.org/draft-07/schema#","title":"Pymatgen Slab Generator Parameters Schema","description":"Parameters for the Pymatgen slab generator. https://github.com/materialsproject/pymatgen/blob/585bb673c4aa222669c4b0d72ffeec3dbf092630/pymatgen/core/surface.py#L1187","type":"object","properties":{"min_vacuum_size":{"description":"Minimum size of the vacuum in layers or angstroms","type":["integer","number"],"minimum":0,"default":0},"in_unit_planes":{"description":"Whether to use unit planes for the vacuum and slab size","type":"boolean","default":true},"reorient_lattice":{"description":"Whether to reorient the lattice to have c vector along the z-axis","type":"boolean","default":true},"symmetrize":{"description":"Whether to symmetrize the slab","type":"boolean","default":true}}},{"$id":"context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"context provider schema","type":"object","required":["name"],"additionalProperties":true,"properties":{"name":{"type":"string","enum":["PlanewaveCutoffDataManager","KGridFormDataManager","QGridFormDataManager","IGridFormDataManager","QPathFormDataManager","IPathFormDataManager","KPathFormDataManager","ExplicitKPathFormDataManager","ExplicitKPath2PIBAFormDataManager","HubbardJContextManager","HubbardUContextManager","HubbardVContextManager","HubbardContextManagerLegacy","NEBFormDataManager","BoundaryConditionsFormDataManager","MLSettingsDataManager","MLTrainTestSplitDataManager","IonDynamicsContextProvider","CollinearMagnetizationDataManager","NonCollinearMagnetizationDataManager","QEPWXInputDataManager","QENEBInputDataManager","VASPInputDataManager","VASPNEBInputDataManager","NWChemInputDataManager"],"tsEnumNames":["PlanewaveCutoffDataManager","KGridFormDataManager","QGridFormDataManager","IGridFormDataManager","QPathFormDataManager","IPathFormDataManager","KPathFormDataManager","ExplicitKPathFormDataManager","ExplicitKPath2PIBAFormDataManager","HubbardJContextManager","HubbardUContextManager","HubbardVContextManager","HubbardContextManagerLegacy","NEBFormDataManager","BoundaryConditionsFormDataManager","MLSettingsDataManager","MLTrainTestSplitDataManager","IonDynamicsContextProvider","CollinearMagnetizationDataManager","NonCollinearMagnetizationDataManager","QEPWXInputDataManager","QENEBInputDataManager","VASPInputDataManager","VASPNEBInputDataManager","NWChemInputDataManager"]},"domain":{"description":"domain of the context provider","type":"string"},"entityName":{"description":"entity name associated with the context provider","type":"string"},"data":{"description":"data object for the context provider","type":"object"},"extraData":{"description":"additional data object for the context provider","type":"object"},"isEdited":{"description":"flag indicating if the context provider has been edited","type":"boolean"},"context":{"description":"context object for the context provider","type":"object"}}},{"$id":"context-providers-directory/boundary-conditions-data-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Boundary Conditions Data Provider Schema","type":"object","properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"},"electricField":{"type":"number","title":"Electric Field (eV/A)"},"targetFermiEnergy":{"type":"number","title":"Target Fermi Energy (eV)"}}},{"$id":"context-providers-directory/by-application/nwchem-total-energy-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"NWChem Total Energy Context Provider Schema","description":"Schema for NWChemTotalEnergyContextProvider that generates context data for NWChem total energy input.","type":"object","required":["CHARGE","MULT","BASIS","NAT","NTYP","ATOMIC_POSITIONS","ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS","ATOMIC_SPECIES","FUNCTIONAL","CARTESIAN"],"properties":{"CHARGE":{"type":"integer","description":"Total charge of the system."},"MULT":{"type":"integer","description":"Spin multiplicity of the system."},"BASIS":{"type":"string","description":"Basis set label used in the calculation (e.g., '6-31G')."},"NAT":{"type":"integer","description":"Number of atoms in the system."},"NTYP":{"type":"integer","description":"Number of unique atomic species in the system."},"ATOMIC_POSITIONS":{"type":"string","description":"Formatted text block with atomic positions including constraints."},"ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS":{"type":"string","description":"Formatted text block with atomic positions without constraints."},"ATOMIC_SPECIES":{"type":"string","description":"Formatted text block for atomic species, including element symbols and masses."},"FUNCTIONAL":{"type":"string","description":"Exchange-correlation functional identifier (e.g., 'B3LYP')."},"CARTESIAN":{"type":"boolean","description":"Whether atomic positions are expressed in cartesian coordinates."}}},{"$id":"context-providers-directory/by-application/qe-neb-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"QE NEB Context Provider Schema","description":"Schema for QENEBContextProvider that generates context data for Quantum ESPRESSO pw.x NEB input. Extends the pw.x context with image-specific atomic positions.","type":"object","required":["IBRAV","RESTART_MODE","ATOMIC_SPECIES","ATOMIC_SPECIES_WITH_LABELS","NAT","NTYP","NTYP_WITH_LABELS","CELL_PARAMETERS","FIRST_IMAGE","LAST_IMAGE","INTERMEDIATE_IMAGES"],"properties":{"IBRAV":{"type":"integer"},"RESTART_MODE":{"type":"string","enum":["from_scratch","restart"],"default":"from_scratch"},"ATOMIC_SPECIES":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"Mass_X":{"type":"number","description":"mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"},"PseudoPot_X":{"type":"string","description":"PseudoPot_X"}}}},"ATOMIC_SPECIES_WITH_LABELS":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"Mass_X":{"type":"number","description":"mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"},"PseudoPot_X":{"type":"string","description":"PseudoPot_X"}}}},"NAT":{"type":"integer","description":"number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms)"},"NTYP":{"type":"integer","description":"number of types of atoms in the unit cell"},"NTYP_WITH_LABELS":{"type":"integer","description":"Number of different atomic species including labels","minimum":1},"ATOMIC_POSITIONS":{"type":"array","items":{"type":"object","required":["x","y","z"],"additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom as specified in ATOMIC_SPECIES"},"x":{"type":"number","description":"atomic positions"},"y":{"type":"number","description":"atomic positions"},"z":{"type":"number","description":"atomic positions"},"if_pos(1)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(2)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(3)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1}}}},"ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS":{"type":"string","description":"Formatted text block for ATOMIC_POSITIONS card WITHOUT constraints. Format: 'X x y z' per line"},"CELL_PARAMETERS":{"type":"object","additionalProperties":false,"properties":{"v1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},"FIRST_IMAGE":{"type":"string","description":"Atomic positions block (ATOMIC_POSITIONS) for the first NEB image."},"LAST_IMAGE":{"type":"string","description":"Atomic positions block (ATOMIC_POSITIONS) for the last NEB image."},"INTERMEDIATE_IMAGES":{"type":"array","description":"Atomic positions blocks (ATOMIC_POSITIONS) for all intermediate NEB images.","items":{"type":"string"}}}},{"$id":"context-providers-directory/by-application/qe-pwx-base-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"QE pwx Base Context Provider Schema","description":"Base schema with shared Quantum ESPRESSO pw.x context provider properties.","type":"object","properties":{"IBRAV":{"type":"integer"},"RESTART_MODE":{"type":"string","enum":["from_scratch","restart"],"default":"from_scratch"},"ATOMIC_SPECIES":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"Mass_X":{"type":"number","description":"mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"},"PseudoPot_X":{"type":"string","description":"PseudoPot_X"}}}},"ATOMIC_SPECIES_WITH_LABELS":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"Mass_X":{"type":"number","description":"mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"},"PseudoPot_X":{"type":"string","description":"PseudoPot_X"}}}},"NAT":{"type":"integer","description":"number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms)"},"NTYP":{"type":"integer","description":"number of types of atoms in the unit cell"},"NTYP_WITH_LABELS":{"type":"integer","description":"Number of different atomic species including labels","minimum":1},"ATOMIC_POSITIONS":{"type":"array","items":{"type":"object","required":["x","y","z"],"additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom as specified in ATOMIC_SPECIES"},"x":{"type":"number","description":"atomic positions"},"y":{"type":"number","description":"atomic positions"},"z":{"type":"number","description":"atomic positions"},"if_pos(1)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(2)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(3)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1}}}},"ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS":{"type":"string","description":"Formatted text block for ATOMIC_POSITIONS card WITHOUT constraints. Format: 'X x y z' per line"},"CELL_PARAMETERS":{"type":"object","additionalProperties":false,"properties":{"v1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}}},{"$id":"context-providers-directory/by-application/qe-pwx-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"QE pwx Context Provider Schema","description":"Schema for QEPWXContextProvider that generates context data for Quantum ESPRESSO pw.x input files. Contains computed context properties and string-formatted versions of pw.x input sections.","type":"object","required":["IBRAV","RESTART_MODE","ATOMIC_SPECIES","ATOMIC_SPECIES_WITH_LABELS","NAT","NTYP","NTYP_WITH_LABELS","ATOMIC_POSITIONS","ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS","CELL_PARAMETERS"],"properties":{"IBRAV":{"type":"integer"},"RESTART_MODE":{"type":"string","enum":["from_scratch","restart"],"default":"from_scratch"},"ATOMIC_SPECIES":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"Mass_X":{"type":"number","description":"mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"},"PseudoPot_X":{"type":"string","description":"PseudoPot_X"}}}},"ATOMIC_SPECIES_WITH_LABELS":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in \"Xn\" (e.g. Fe1) or \"X_*\" or \"X-*\" (e.g. C1, C_h; max total length cannot exceed 3 characters)"},"Mass_X":{"type":"number","description":"mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)"},"PseudoPot_X":{"type":"string","description":"PseudoPot_X"}}}},"NAT":{"type":"integer","description":"number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms)"},"NTYP":{"type":"integer","description":"number of types of atoms in the unit cell"},"NTYP_WITH_LABELS":{"type":"integer","description":"Number of different atomic species including labels","minimum":1},"ATOMIC_POSITIONS":{"type":"array","items":{"type":"object","required":["x","y","z"],"additionalProperties":false,"properties":{"X":{"type":"string","description":"label of the atom as specified in ATOMIC_SPECIES"},"x":{"type":"number","description":"atomic positions"},"y":{"type":"number","description":"atomic positions"},"z":{"type":"number","description":"atomic positions"},"if_pos(1)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(2)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},"if_pos(3)":{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1}}}},"ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS":{"type":"string","description":"Formatted text block for ATOMIC_POSITIONS card WITHOUT constraints. Format: 'X x y z' per line"},"CELL_PARAMETERS":{"type":"object","additionalProperties":false,"properties":{"v1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"v3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}}},{"$id":"context-providers-directory/by-application/vasp-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"VASP Context Provider Schema","description":"Schema for VASPContextProvider that generates context data for VASP POSCAR input files.","type":"object","required":["POSCAR","POSCAR_WITH_CONSTRAINTS"],"properties":{"POSCAR":{"type":"string","description":"POSCAR content for VASP including lattice, atom types, positions and constraints."},"POSCAR_WITH_CONSTRAINTS":{"type":"string","description":"POSCAR content for VASP including lattice, atom types, positions and constraints. May differ in how constraints are represented."}}},{"$id":"context-providers-directory/by-application/vasp-neb-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"VASP NEB Context Provider Schema","description":"Schema for VASPNEBContextProvider that generates context data for VASP NEB (nudged elastic band) runs.","type":"object","required":["FIRST_IMAGE","LAST_IMAGE","INTERMEDIATE_IMAGES"],"properties":{"FIRST_IMAGE":{"type":"string","description":"POSCAR content with constraints for the first NEB image."},"LAST_IMAGE":{"type":"string","description":"POSCAR content with constraints for the last NEB image."},"INTERMEDIATE_IMAGES":{"type":"array","description":"POSCAR contents with constraints for all intermediate NEB images.","items":{"type":"string"}}}},{"$id":"context-providers-directory/collinear-magnetization-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Collinear Magnetization Context Provider Schema","description":"Set starting magnetization, can have values in the range [-1, +1].","type":"object","required":["startingMagnetization","isTotalMagnetization","totalMagnetization"],"properties":{"startingMagnetization":{"type":"array","items":{"type":"object","required":["atomicSpecies","value","index"],"properties":{"atomicSpecies":{"type":"string","title":"Atomic species"},"value":{"type":"number","title":"Starting magnetization","minimum":-1,"maximum":1},"index":{"type":"integer","title":"Index"}}}},"isTotalMagnetization":{"type":"boolean","title":"Set total magnetization instead"},"totalMagnetization":{"type":"number","title":"Total magnetization"}}},{"$id":"context-providers-directory/enum","definitions":{"ContextProviderNameEnum":{"type":"string","enum":["PlanewaveCutoffDataManager","KGridFormDataManager","QGridFormDataManager","IGridFormDataManager","QPathFormDataManager","IPathFormDataManager","KPathFormDataManager","ExplicitKPathFormDataManager","ExplicitKPath2PIBAFormDataManager","HubbardJContextManager","HubbardUContextManager","HubbardVContextManager","HubbardContextManagerLegacy","NEBFormDataManager","BoundaryConditionsFormDataManager","MLSettingsDataManager","MLTrainTestSplitDataManager","IonDynamicsContextProvider","CollinearMagnetizationDataManager","NonCollinearMagnetizationDataManager","QEPWXInputDataManager","QENEBInputDataManager","VASPInputDataManager","VASPNEBInputDataManager","NWChemInputDataManager"],"tsEnumNames":["PlanewaveCutoffDataManager","KGridFormDataManager","QGridFormDataManager","IGridFormDataManager","QPathFormDataManager","IPathFormDataManager","KPathFormDataManager","ExplicitKPathFormDataManager","ExplicitKPath2PIBAFormDataManager","HubbardJContextManager","HubbardUContextManager","HubbardVContextManager","HubbardContextManagerLegacy","NEBFormDataManager","BoundaryConditionsFormDataManager","MLSettingsDataManager","MLTrainTestSplitDataManager","IonDynamicsContextProvider","CollinearMagnetizationDataManager","NonCollinearMagnetizationDataManager","QEPWXInputDataManager","QENEBInputDataManager","VASPInputDataManager","VASPNEBInputDataManager","NWChemInputDataManager"]}}},{"$id":"context-providers-directory/hubbard-j-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard J Context Provider Schema","description":"Hubbard parameters for DFT+U+J calculation.","type":"array","minItems":1,"items":{"type":"object","properties":{"paramType":{"type":"string","title":"Species","enum":["U","J","B","E2","E3"]},"atomicSpecies":{"type":"string","title":"Species"},"atomicOrbital":{"type":"string","title":"Orbital"},"value":{"type":"number","title":"Value (eV)"}}}},{"$id":"context-providers-directory/hubbard-legacy-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard Legacy Context Provider Schema","description":"Hubbard parameters for DFT+U calculation.","type":"array","uniqueItems":true,"minItems":1,"items":{"type":"object","properties":{"atomicSpecies":{"type":"string","title":"Atomic species"},"atomicSpeciesIndex":{"type":"integer","title":"Species index"},"hubbardUValue":{"type":"number","title":"Hubbard U (eV)"}}}},{"$id":"context-providers-directory/hubbard-u-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard U Context Provider Schema","description":"Hubbard U parameters for DFT+U or DFT+U+V calculation.","type":"array","items":{"type":"object","properties":{"atomicSpecies":{"type":"string","title":"Atomic species"},"atomicOrbital":{"type":"string","title":"Atomic orbital"},"hubbardUValue":{"type":"number","title":"Hubbard U (eV)"}}}},{"$id":"context-providers-directory/hubbard-v-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard V Context Provider Schema","description":"Hubbard V parameters for DFT+U+V calculation.","type":"array","minItems":1,"items":{"type":"object","properties":{"atomicSpecies":{"type":"string","title":"Species 1"},"siteIndex":{"type":"integer","title":"Site no 1"},"atomicOrbital":{"type":"string","title":"Orbital 1"},"atomicSpecies2":{"type":"string","title":"Species 2"},"siteIndex2":{"type":"integer","title":"Site no 2"},"atomicOrbital2":{"type":"string","title":"Orbital 2"},"hubbardVValue":{"type":"number","title":"V (eV)"}}}},{"$id":"context-providers-directory/ion-dynamics-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Ion Dynamics Context Provider Schema","description":"Important parameters for molecular dynamics calculation","type":"object","properties":{"numberOfSteps":{"type":"integer","title":"numberOfSteps"},"timeStep":{"type":"number","title":"timeStep (Hartree a.u.)"},"electronMass":{"type":"number","title":"Effective electron mass"},"temperature":{"type":"number","title":"Ionic temperature (K)"}}},{"$id":"context-providers-directory/ml-settings-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"ML Settings Context Provider Schema","description":"Settings important to machine learning runs.","type":"object","properties":{"target_column_name":{"type":"string"},"problem_category":{"type":"string","enum":["regression","classification","clustering"]}}},{"$id":"context-providers-directory/ml-train-test-split-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"ML Train Test Split Context Provider Schema","description":"Fraction held as the test set. For example, a value of 0.2 corresponds to an 80/20 train/test split.","type":"object","properties":{"fraction_held_as_test_set":{"type":"number","minimum":0,"maximum":1}}},{"$id":"context-providers-directory/neb-data-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"NEB Data Provider Schema","description":"Number of intermediate NEB images.","type":"object","properties":{"nImages":{"type":"number"}}},{"$id":"context-providers-directory/non-collinear-magnetization-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Non Collinear Magnetization Context Provider Schema","description":"Non-collinear magnetization parameters including starting magnetization, spin angles, and constraints.","type":"object","properties":{"isExistingChargeDensity":{"type":"boolean","title":"Use existing charge density"},"isStartingMagnetization":{"type":"boolean","title":"Set starting magnetization"},"startingMagnetization":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","title":"Index"},"atomicSpecies":{"type":"string","title":"Atomic species"},"value":{"type":"number","title":"Starting magnetization"}}}},"isArbitrarySpinAngle":{"type":"boolean","title":"Set arbitrary spin angle"},"isArbitrarySpinDirection":{"type":"boolean","title":"Set arbitrary spin direction"},"lforcet":{"type":"boolean"},"spinAngles":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","title":"Index"},"atomicSpecies":{"type":"string","title":"Atomic species"},"angle1":{"type":"number","title":"Angle1 (deg)"},"angle2":{"type":"number","title":"Angle2 (deg)"}}}},"isConstrainedMagnetization":{"type":"boolean","title":"Set constrained magnetization"},"constrainedMagnetization":{"type":"object","properties":{"constrainType":{"type":"string","title":"Constrain type","enum":["none","total","atomic","total direction","atomic direction"]},"lambda":{"type":"number","title":"lambda"}}},"isFixedMagnetization":{"type":"boolean","title":"Set Fixed magnetization (only applicable to constrained magnetization of 'total' type)"},"fixedMagnetization":{"type":"object","properties":{"x":{"type":"number","title":"X-component"},"y":{"type":"number","title":"Y-component"},"z":{"type":"number","title":"Z-component"}}}}},{"$id":"context-providers-directory/planewave-cutoffs-context-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Planewave Cutoffs Context Provider Schema","description":"Planewave cutoff parameters for electronic wavefunctions and density. Units are specific to simulation engine.","type":"object","properties":{"wavefunction":{"type":"number"},"density":{"type":"number"}}},{"$id":"context-providers-directory/points-grid-data-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Points Grid Data Provider Schema","description":"3D grid with shifts for k-point or q-point sampling.","type":"object","required":["dimensions","gridMetricType","gridMetricValue"],"properties":{"dimensions":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"shifts":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"reciprocalVectorRatios":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"gridMetricType":{"type":"string","enum":["KPPRA","spacing"]},"gridMetricValue":{"type":"number"},"preferGridMetric":{"type":"boolean"}}},{"$id":"context-providers-directory/points-path-data-provider","$schema":"http://json-schema.org/draft-07/schema#","title":"Points Path Data Provider Schema","description":"Path in reciprocal space for band structure calculations.","type":"array","minItems":1,"items":{"type":"object","required":["point","steps","coordinates"],"properties":{"point":{"type":"string"},"steps":{"type":"integer"},"coordinates":{"type":"array","items":{"type":"number"}}}}},{"$id":"core/abstract/2d-data","$schema":"http://json-schema.org/draft-07/schema#","title":"2 dimension data schema","type":"object","required":["xDataArray","yDataSeries"],"properties":{"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"core/abstract/2d-plot","$schema":"http://json-schema.org/draft-07/schema#","title":"2 dimension plot schema","type":"object","required":["xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","type":"object","required":["label"],"properties":{"label":{"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},"yAxis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","type":"object","required":["label"],"properties":{"label":{"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"core/abstract/3d-grid","$schema":"http://json-schema.org/draft-07/schema#","title":"3 dimensional grid schema","type":"object","required":["dimensions","shifts"],"properties":{"dimensions":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"shifts":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$id":"core/abstract/coordinate-2d","$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 2d schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},{"$id":"core/abstract/coordinate-3d","$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},{"$id":"core/abstract/matrix-3x3","$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},{"$id":"core/abstract/vector-2d","$schema":"http://json-schema.org/draft-07/schema#","title":"vector 2d schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},{"$id":"core/abstract/vector-3d","$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},{"$id":"core/abstract/vector-boolean-3d","$schema":"http://json-schema.org/draft-07/schema#","title":"vector boolean 3d schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 boolean elements schema","type":"array","items":{"type":"boolean"},"minItems":3,"maxItems":3}]},{"$id":"core/primitive/1d-data-series","$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}},{"$id":"core/primitive/array-of-2-numbers","$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},{"$id":"core/primitive/array-of-3-booleans","$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 boolean elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"boolean"}},{"$id":"core/primitive/array-of-3-integers","$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 integer elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},{"$id":"core/primitive/array-of-3-numbers","$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},{"$id":"core/primitive/array-of-ids","$schema":"http://json-schema.org/draft-07/schema#","title":"array of ids","description":"array of objects containing integer id each","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","type":"object","required":["id"],"properties":{"id":{"description":"integer id of this entry","type":"integer"}}}},{"$id":"core/primitive/array-of-strings","$schema":"http://json-schema.org/draft-07/schema#","title":"array of strings","description":"array of strings, e.g. metadata tags","type":"array","items":{"type":"string","uniqueItems":true}},{"$id":"core/primitive/axis","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","type":"object","required":["label"],"properties":{"label":{"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},{"$id":"core/primitive/axis-3d-names-enum","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},{"$id":"core/primitive/group-info","$schema":"http://json-schema.org/draft-07/schema#","title":"Group info schema for nodes in a graph","type":"object","properties":{"groupName":{"description":"Human-readable name of group of nodes","type":"string"},"groupId":{"description":"Unique identifier of the group a node belongs to","type":"string"}}},{"$id":"core/primitive/integer-one-or-zero","$schema":"http://json-schema.org/draft-07/schema#","title":"integer one or zero","type":"integer","minimum":0,"maximum":1},{"$id":"core/primitive/integer-positive-single-digit","$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9},{"$id":"core/primitive/linked-list/base-node","$schema":"http://json-schema.org/draft-07/schema#","title":"basic node schema (linked list)","type":"object","definitions":{"flowchart-id":{"required":["flowchartId"],"properties":{"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}},"required":["flowchartId"],"properties":{"next":{"description":"Flowchart ID of next node","type":"string"},"head":{"description":"Whether node is head node or not","type":"boolean"},"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}},{"$id":"core/primitive/linked-list/named-node","$schema":"http://json-schema.org/draft-07/schema#","title":"Named node schema","type":"object","definitions":{"flowchart-id":{"required":["flowchartId"],"properties":{"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}},"required":["flowchartId","name"],"properties":{"next":{"description":"Flowchart ID of next node","type":"string"},"head":{"description":"Whether node is head node or not","type":"boolean"},"flowchartId":{"description":"Unique flowchart ID of node","type":"string"},"name":{"description":"entity name","type":"string"}}},{"$id":"core/primitive/linked-list/named-node-in-group","$schema":"http://json-schema.org/draft-07/schema#","title":"Named node in group schema","type":"object","definitions":{"flowchart-id":{"required":["flowchartId"],"properties":{"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}},"required":["flowchartId","name"],"properties":{"next":{"description":"Flowchart ID of next node","type":"string"},"head":{"description":"Whether node is head node or not","type":"boolean"},"flowchartId":{"description":"Unique flowchart ID of node","type":"string"},"name":{"description":"entity name","type":"string"},"groupName":{"description":"Human-readable name of group of nodes","type":"string"},"groupId":{"description":"Unique identifier of the group a node belongs to","type":"string"}}},{"$id":"core/primitive/linked-list/node-with-type","$schema":"http://json-schema.org/draft-07/schema#","title":"Typed node schema","type":"object","definitions":{"flowchart-id":{"required":["flowchartId"],"properties":{"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}},"required":["flowchartId"],"properties":{"type":{"type":"string"},"next":{"description":"Flowchart ID of next node","type":"string"},"head":{"description":"Whether node is head node or not","type":"boolean"},"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}},{"$id":"core/primitive/linked-list","$schema":"http://json-schema.org/draft-07/schema#","title":"linked list schema","type":"array","items":{"type":"object","anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"basic node schema (linked list)","type":"object","definitions":{"flowchart-id":{"required":["flowchartId"],"properties":{"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}},"required":["flowchartId"],"properties":{"next":{"description":"Flowchart ID of next node","type":"string"},"head":{"description":"Whether node is head node or not","type":"boolean"},"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Named node schema","type":"object","definitions":{"flowchart-id":{"required":["flowchartId"],"properties":{"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}},"required":["flowchartId","name"],"properties":{"next":{"description":"Flowchart ID of next node","type":"string"},"head":{"description":"Whether node is head node or not","type":"boolean"},"flowchartId":{"description":"Unique flowchart ID of node","type":"string"},"name":{"description":"entity name","type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Named node in group schema","type":"object","definitions":{"flowchart-id":{"required":["flowchartId"],"properties":{"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}},"required":["flowchartId","name"],"properties":{"next":{"description":"Flowchart ID of next node","type":"string"},"head":{"description":"Whether node is head node or not","type":"boolean"},"flowchartId":{"description":"Unique flowchart ID of node","type":"string"},"name":{"description":"entity name","type":"string"},"groupName":{"description":"Human-readable name of group of nodes","type":"string"},"groupId":{"description":"Unique identifier of the group a node belongs to","type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Typed node schema","type":"object","definitions":{"flowchart-id":{"required":["flowchartId"],"properties":{"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}},"required":["flowchartId"],"properties":{"type":{"type":"string"},"next":{"description":"Flowchart ID of next node","type":"string"},"head":{"description":"Whether node is head node or not","type":"boolean"},"flowchartId":{"description":"Unique flowchart ID of node","type":"string"}}}],"uniqueItems":true}},{"$id":"core/primitive/object-with-id","$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","type":"object","required":["id"],"properties":{"id":{"description":"integer id of this entry","type":"integer"}}},{"$id":"core/primitive/object-with-id-and-value","$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}},{"$id":"core/primitive/scalar","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","type":"object","required":["value"],"properties":{"value":{"type":"number"}}},{"$id":"core/primitive/slugified-entry","$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","required":["name","slug"],"properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}}},{"$id":"core/primitive/slugified-entry-or-slug","$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},{"$id":"core/primitive/string","$schema":"http://json-schema.org/draft-07/schema#","title":"PrimitiveString","type":"object","required":["value"],"properties":{"value":{"type":"string"}}},{"$id":"core/reference/exabyte","$schema":"http://json-schema.org/draft-07/schema#","type":"object","required":["jobId","unitId"],"properties":{"jobId":{"description":"Job's identity","type":"string"},"unitId":{"description":"Id of the unit that extracted the result","type":"string"}}},{"$id":"core/reference/experiment/condition","$schema":"http://json-schema.org/draft-07/schema#","title":"condition schema","type":"object","required":["name"],"properties":{"units":{"description":"condition unit","type":"string"},"scalar":{"description":"array of condition values","type":"array","items":{"type":"object","properties":{"value":{"type":"string"}}}},"name":{"description":"human-readable name of the condition","type":"string"}}},{"$id":"core/reference/experiment/location","$schema":"http://json-schema.org/draft-07/schema#","title":"location schema","type":"object","required":["latitude","longitude"],"properties":{"latitude":{"description":"location latitude","type":"number"},"longitude":{"description":"location longitude","type":"number"}}},{"$id":"core/reference/experiment","$schema":"http://json-schema.org/draft-07/schema#","title":"info for characteristic obtained by experiment","type":"object","required":["conditions","authors","title","method","timestamp"],"properties":{"type":{"enum":["experiment"]},"authors":{"description":"experiment authors","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"title":{"type":"string","description":"experiment title"},"method":{"type":"string","description":"method used in experiment"},"conditions":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition schema","type":"object","required":["name"],"properties":{"units":{"description":"condition unit","type":"string"},"scalar":{"description":"array of condition values","type":"array","items":{"type":"object","properties":{"value":{"type":"string"}}}},"name":{"description":"human-readable name of the condition","type":"string"}}}},"location":{"$schema":"http://json-schema.org/draft-07/schema#","title":"location schema","type":"object","required":["latitude","longitude"],"properties":{"latitude":{"description":"location latitude","type":"number"},"longitude":{"description":"location longitude","type":"number"}}},"timestamp":{"description":"epoch time.","type":"number"},"note":{"description":"Note about experiment","type":"string"},"references":{"type":"array","description":"references to literature articles","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}}}}},{"$id":"core/reference/literature/name","$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}},{"$id":"core/reference/literature/pages","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","type":"object","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},{"$id":"core/reference/literature","$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},{"$id":"core/reference/modeling/exabyte","$schema":"http://json-schema.org/draft-07/schema#","title":"info for characteristic obtained by exabyte calculation","type":"object","required":["title","_id","owner"],"properties":{"type":{"enum":["exabyte"]},"title":{"description":"Human-readable title of the job","type":"string","maxLength":300},"_id":{"description":"job identifier","type":"string"},"owner":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}}}},{"$id":"core/reference/modeling","$schema":"http://json-schema.org/draft-07/schema#","title":"info for property obtained by modeling, only supports exabyte-originated data atm, but easily extendable","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"info for characteristic obtained by exabyte calculation","type":"object","properties":{"type":{"enum":["exabyte"]},"title":{"description":"Human-readable title of the job","type":"string","maxLength":300},"_id":{"description":"job identifier","type":"string"},"owner":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}}},"required":["title","_id","owner"]}]},{"$id":"core/reference","$schema":"http://json-schema.org/draft-07/schema#","title":"reference schema (using `anyOf` instead of `oneOf` below b/c current reference schemas overlap)","anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"info for property obtained by modeling, only supports exabyte-originated data atm, but easily extendable","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"info for characteristic obtained by exabyte calculation","type":"object","properties":{"type":{"enum":["exabyte"]},"title":{"description":"Human-readable title of the job","type":"string","maxLength":300},"_id":{"description":"job identifier","type":"string"},"owner":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}}},"required":["title","_id","owner"]}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"info for characteristic obtained by experiment","type":"object","properties":{"type":{"enum":["experiment"]},"authors":{"description":"experiment authors","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"title":{"type":"string","description":"experiment title"},"method":{"type":"string","description":"method used in experiment"},"conditions":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition schema","type":"object","required":["name"],"properties":{"units":{"description":"condition unit","type":"string"},"scalar":{"description":"array of condition values","type":"array","items":{"type":"object","properties":{"value":{"type":"string"}}}},"name":{"description":"human-readable name of the condition","type":"string"}}}},"location":{"$schema":"http://json-schema.org/draft-07/schema#","title":"location schema","type":"object","required":["latitude","longitude"],"properties":{"latitude":{"description":"location latitude","type":"number"},"longitude":{"description":"location longitude","type":"number"}}},"timestamp":{"description":"epoch time.","type":"number"},"note":{"description":"Note about experiment","type":"string"},"references":{"type":"array","description":"references to literature articles","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}}}},"required":["conditions","authors","title","method","timestamp"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}}]},{"$id":"core/reusable/atomic-data/per-orbital","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital","description":"Atomic properties per orbital e.g., Hubbard U parameters.","type":"object","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"}}},{"$id":"core/reusable/atomic-data/per-orbital-pair","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital pair","description":"Atomic properties per orbital pair e.g., Hubbard V parameters.","type":"object","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"id2":{"type":"integer","description":"Site number or index in the lattice of second site"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"atomicSpecies2":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co2, O"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalName2":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"distance":{"type":"number","description":"Distance between two sites in Bohr."}}},{"$id":"core/reusable/atomic-data/value-number","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data numeric properties","description":"Numeric value specific to atomic data","type":"object","properties":{"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}},{"$id":"core/reusable/atomic-data/value-string","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data string properties","description":"String value specific to atomic data","type":"object","properties":{"value":{"type":"string","description":"String value specific to atomic data"}}},{"$id":"core/reusable/atomic-data-per-orbital-numeric","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","type":"object","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}},{"$id":"core/reusable/atomic-data-per-orbital-pair-numeric","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital pair numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","type":"object","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"id2":{"type":"integer","description":"Site number or index in the lattice of second site"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"atomicSpecies2":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co2, O"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalName2":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"distance":{"type":"number","description":"Distance between two sites in Bohr."},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}},{"$id":"core/reusable/atomic-orbital","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic orbital schema","type":"object","properties":{"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalIndex":{"type":"integer","minimum":1},"principalNumber":{"type":"integer","minimum":1,"maximum":7},"angularMomentum":{"type":"integer","minimum":0,"maximum":3},"occupation":{"type":"number","description":"Shell occupation","minimum":0,"maximum":14}}},{"$id":"core/reusable/atomic-scalars","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic scalars vectors schema","type":"array","description":"array of objects containing integer id each","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","type":"object","required":["id"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","type":"object","required":["value"],"properties":{"value":{"type":"number"}}},"id":{"description":"integer id of this entry","type":"integer"}}}},{"$id":"core/reusable/atomic-string","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic string schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"string","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}},{"$id":"core/reusable/atomic-vector","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vector schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}},{"$id":"core/reusable/atomic-vectors","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vectors schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vector schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},{"$id":"core/reusable/band-gap","$schema":"http://json-schema.org/draft-07/schema#","title":"band gap schema","type":"object","required":["type","value"],"properties":{"kpointConduction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"kpointValence":{"$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"eigenvalueConduction":{"description":"eigenvalue at k-point in conduction band","type":"number"},"eigenvalueValence":{"description":"eigenvalue at k-point in valence band","type":"number"},"spin":{"type":"number"},"type":{"type":"string","enum":["direct","indirect"]},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},"value":{"type":"number"}}},{"$id":"core/reusable/categories","$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable categories schema","description":"Used to categorize entities such as models and methods","type":"object","properties":{"tier1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"core/reusable/category-path","$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},{"$id":"core/reusable/coordinate-conditions/base","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Condition Schema","description":"Base interface for coordinate shape filters","type":"object","required":["shape"],"properties":{"shape":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]}}},{"$id":"core/reusable/coordinate-conditions/box","$schema":"http://json-schema.org/draft-07/schema#","title":"Box Coordinate Condition Schema","required":["max_coordinate","min_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"box","default":"box","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"min_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"max_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$id":"core/reusable/coordinate-conditions/cylinder","$schema":"http://json-schema.org/draft-07/schema#","title":"Cylinder Coordinate Condition Schema","required":["max_z","min_z","radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"cylinder","default":"cylinder","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$id":"core/reusable/coordinate-conditions/enum","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},{"$id":"core/reusable/coordinate-conditions/index","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Conditions Schema","description":"Combined schema for all coordinate condition types","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Box Coordinate Condition Schema","required":["max_coordinate","min_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"box","default":"box","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"min_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"max_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Sphere Coordinate Condition Schema","required":["radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"sphere","default":"sphere","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Cylinder Coordinate Condition Schema","required":["max_z","min_z","radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"cylinder","default":"cylinder","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Triangular Prism Coordinate Condition Schema","required":["max_z","min_z","position_on_surface_1","position_on_surface_2","position_on_surface_3","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"triangular_prism","default":"triangular_prism","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"position_on_surface_1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Plane Coordinate Condition Schema","required":["plane_normal","plane_point_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"plane","default":"plane","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"plane_normal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"plane_point_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}]},{"$id":"core/reusable/coordinate-conditions/plane","$schema":"http://json-schema.org/draft-07/schema#","title":"Plane Coordinate Condition Schema","required":["plane_normal","plane_point_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"plane","default":"plane","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"plane_normal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"plane_point_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$id":"core/reusable/coordinate-conditions/sphere","$schema":"http://json-schema.org/draft-07/schema#","title":"Sphere Coordinate Condition Schema","required":["radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"sphere","default":"sphere","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0}}},{"$id":"core/reusable/coordinate-conditions/triangular-prism","$schema":"http://json-schema.org/draft-07/schema#","title":"Triangular Prism Coordinate Condition Schema","required":["max_z","min_z","position_on_surface_1","position_on_surface_2","position_on_surface_3","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"triangular_prism","default":"triangular_prism","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"position_on_surface_1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$id":"core/reusable/dielectric-tensor-component","$schema":"http://json-schema.org/draft-07/schema#","title":"Dielectric Tensor","type":"object","required":["part","frequencies","components"],"description":"Schema for a function of frequency yielding a nx3 matrix","properties":{"part":{"description":"Real or imaginary part of the dielectric tensor component","type":"string","enum":["real","imaginary"]},"spin":{"type":"number"},"frequencies":{"description":"Frequencies","type":"array","items":{"type":"number"}},"components":{"description":"Matrix with 3 columns, e.g. x, y, z","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}},{"$id":"core/reusable/energy","$schema":"http://json-schema.org/draft-07/schema#","title":"energy schema","type":"object","required":["name","units","value"],"properties":{"name":{"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"core/reusable/energy-accuracy-levels","$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}},{"$id":"core/reusable/file-metadata","$schema":"http://json-schema.org/draft-07/schema#","title":"file_metadata","type":"object","properties":{"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}},{"$id":"core/reusable/frequency-function-matrix","$schema":"http://json-schema.org/draft-07/schema#","title":"","description":"Schema for a function of frequency yielding a nx3 matrix","type":"object","properties":{"frequencies":{"description":"Frequencies","type":"array","items":{"type":"number"}},"components":{"description":"Matrix with 3 columns, e.g. x, y, z","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}},{"$id":"core/reusable/kpoint","$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},{"$id":"core/reusable/object-storage-container-data","$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},{"$id":"core/reusable/scalar-with-accuracy-levels","$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for scalar values with accuracy levels","type":"object","required":["accuracy_level","value"],"properties":{"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}},{"$id":"definitions/chemical-elements","title":"Chemical Element Symbols","periodic_table":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},"extra":{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]},"all":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}]}},{"$id":"definitions/constants","title":"fundamental constants","description":"Fundamental physical constants, 2022 NIST CODATA (https://doi.org/10.48550/arXiv.2409.03787)","type":"object","required":["c","h","e","G","me","eps0","mu0"],"properties":{"c":{"description":"speed of light in vacuum, \"units\": \"m/s\"","type":"number","default":299792458},"h":{"description":"Planck constant, \"units\": \"J s\"","type":"number","default":6.62607015e-34},"e":{"description":"elementary charge, \"units\": \"C\"","type":"number","default":1.602176634e-19},"G":{"description":"Newtonian constant of gravitation, \"units\": \"m^3/kg/s^2\"","type":"number","default":6.6743015e-11},"me":{"description":"electron mass \"units\": \"kg\"","type":"number","default":9.109383713928e-31},"eps0":{"description":"vacuum permittivity, \"units\": \"F/m\"","type":"number","default":8.854187818814e-12},"mu0":{"description":"vacuum permeability, \"units\": \"N/A^2\"","type":"number","default":0.000001256637061272}}},{"$id":"definitions/material","title":"Materials Definitions","form_factor":{"description":"Form factor of the material","enum":["bulk","slab","monolayer","nanoribbon"]},"dimensionality":{"description":"Dimensionality of the material","enum":["zero-dimensional","one-dimensional","two-dimensional","three-dimensional"]}},{"$id":"definitions/units","title":"all units definitions","angle":{"enum":["degree","radian"],"default":"degree"},"coordinates_basis":{"enum":["crystal","cartesian"],"default":"crystal"},"coordinates_lattice_reciprocal":{"enum":["crystal","cartesian"],"default":"crystal"},"length":{"enum":["km","m","cm","mm","um","nm","angstrom","a.u.","bohr","pm"]},"length_atomic":{"enum":["angstrom","bohr"],"default":"angstrom"},"energy":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},"energy_atomic":{"enum":["eV","hartree","rydberg"],"default":"eV"},"surface_energy":{"enum":["eV/A^2"]},"force":{"enum":["eV/bohr","eV/angstrom","Ry/a.u.","newton","kg*m/s^2","eV/a.u."]},"volume":{"enum":["cm^3","angstrom^3"]},"numberDensity":{"enum":["1/angstrom^3"]},"density":{"enum":["g/cm^3"]},"frequency":{"enum":["cm-1","THz","meV"]},"pressure":{"enum":["kbar","pa"]},"phononDOS":{"enum":["states/cm-1","states/THz","states/meV"]},"electronicDOS":{"enum":["states/unitcell"]},"magnetic":{"enum":["uB"]},"chargeDensity":{"enum":["e/A"]},"spectralIntensity":{"enum":["(debye/angstrom)^2","km/mol","m/mol","a.u."]}},{"$id":"element","$schema":"http://json-schema.org/draft-07/schema#","title":"element schema","type":"object","properties":{"symbol":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},"properties":{"type":"array","description":"list of elemental properties","items":{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic radius","description":"atomic radius","type":"object","required":["name","value"],"properties":{"name":{"enum":["atomic_radius"]},"units":{"enum":["km","m","cm","mm","um","nm","angstrom","a.u.","bohr","pm"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"electronegativity","description":"electronegativity for the element (Pauling scale)","type":"object","required":["name","value"],"properties":{"name":{"enum":["electronegativity"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Ionization potential elemental property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["ionization_potential"]},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},"value":{"type":"number"}}}]}}}},{"$id":"in-memory-entity/base","$schema":"http://json-schema.org/draft-07/schema#","title":"Base in-memory entity schema","type":"object","properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"}}},{"$id":"in-memory-entity/defaultable","$schema":"http://json-schema.org/draft-07/schema#","title":"Defaultable in-memory entity schema","type":"object","properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$id":"in-memory-entity/has-consistency-check-has-metadata-named-defaultable","$schema":"http://json-schema.org/draft-07/schema#","title":"has consistency check has metadata named defaultable in-memory entity schema","type":"object","required":["name"],"description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"consistency check","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"name":{"type":"string","description":"Name of the consistency check that is performed, which is listed in an enum."},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}}}},{"$id":"in-memory-entity/named","$schema":"http://json-schema.org/draft-07/schema#","title":"Named in-memory entity schema","type":"object","required":["name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"}}},{"$id":"in-memory-entity/named-defaultable","$schema":"http://json-schema.org/draft-07/schema#","title":"Named defaultable in-memory entity schema","type":"object","required":["name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$id":"in-memory-entity/named-defaultable-has-metadata","$schema":"http://json-schema.org/draft-07/schema#","title":"Named defaultable has metadata in-memory entity schema","type":"object","required":["name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$id":"job/base","$schema":"http://json-schema.org/draft-07/schema#","title":"job base schema","type":"object","required":["_project","compute","name","status"],"properties":{"rmsId":{"description":"Identity used to track jobs originated from command-line","type":"string"},"status":{"description":"job status","enum":["pre-submission","queued","submitted","active","finished","terminate-queued","terminated","error","deleted","timeout"]},"startTime":{"description":"Approximate start time of the job. e.g. within 10 min","type":"string"},"workDir":{"description":"The path to the working directory of this job, when the job originates from command-line","type":"string"},"compute":{"$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}},"_project":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}},"_material":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}},"parent":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}},"runtimeContext":{"description":"Context variables that the job will have access to at runtime","type":"object"},"scopeTrack":{"description":"history of the workflow scope on each update","type":"array","items":{"type":"object","properties":{"repetition":{"type":"number"},"scope":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow scope schema","type":"object","required":["global","local"],"properties":{"global":{"type":"object","additionalProperties":true},"local":{"type":"object","additionalProperties":true}}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$id":"job/compute","$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}},{"$id":"job","$schema":"http://json-schema.org/draft-07/schema#","title":"job schema","type":"object","required":["_project","compute","name","status","workflow"],"properties":{"workflow":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow schema","type":"object","required":["name","subworkflows","units"],"properties":{"subworkflows":{"description":"Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Subworkflow Schema","type":"object","required":["application","model","name","units"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"properties":{"description":"Array of characteristic properties calculated by this subworkflow","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","type":"string"}},"compute":{"$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}},"units":{"description":"Contains the Units of the subworkflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow subworkflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","source","subtype","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"io"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database ids input/output schema","type":"object","properties":{"type":{"const":"db_ids"},"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["type","ids"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database collection input/output schema","type":"object","properties":{"type":{"const":"db_collection"},"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["type","collection","draft"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["type","objectData"],"properties":{"type":{"const":"object_storage"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}],"discriminator":{"propertyName":"type"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"reduce"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","monitors","name","postProcessors","preProcessors","results","statement","then","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"condition"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","statement","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assertion"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"execution"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},"input":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}}},"context":{"type":"array","items":{"type":"object","required":["name","isEdited","data"],"properties":{"name":{"type":"string","tsType":"ContextProviderNameEnum"},"isEdited":{"type":"boolean"},"data":{"type":"object"},"extraData":{"type":"object"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","monitors","name","operand","postProcessors","preProcessors","results","type","value"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assignment"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"scope":{"type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","monitors","name","operation","operationType","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"processing"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"model":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base model","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"isDraft":{"description":"Defines whether to store the results/properties extracted in this unit to properties collection","type":"boolean","default":false}}}},"units":{"description":"Contains the Units of the Workflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","source","subtype","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"io"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database ids input/output schema","type":"object","properties":{"type":{"const":"db_ids"},"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["type","ids"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database collection input/output schema","type":"object","properties":{"type":{"const":"db_collection"},"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["type","collection","draft"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["type","objectData"],"properties":{"type":{"const":"object_storage"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}],"discriminator":{"propertyName":"type"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"reduce"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","monitors","name","postProcessors","preProcessors","results","statement","then","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"condition"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","statement","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assertion"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"execution"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},"input":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}}},"context":{"type":"array","items":{"type":"object","required":["name","isEdited","data"],"properties":{"name":{"type":"string","tsType":"ContextProviderNameEnum"},"isEdited":{"type":"boolean"},"data":{"type":"object"},"extraData":{"type":"object"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","monitors","name","operand","postProcessors","preProcessors","results","type","value"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assignment"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"scope":{"type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","monitors","name","operation","operationType","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"processing"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"map unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","type","workflowId"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"map"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"workflowId":{"description":"Id of workflow to run inside map","type":"string"},"input":{"description":"Input information for map.","type":"object","required":["target"],"properties":{"target":{"description":"Name of the target variable to substitute using the values below. e.g. K_POINTS","type":"string"},"scope":{"description":"Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.","type":"string"},"name":{"description":"Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.","type":"string"},"values":{"description":"Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution","type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"object"}]}},"useValues":{"type":"boolean"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"subworkflow unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"subworkflow"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"properties":{"description":"Array of characteristic properties calculated by this workflow (TODO: add enums)","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","oneOf":[{"type":"string"},{"type":"object"}]}},"isUsingDataset":{"description":"Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab.","type":"boolean"},"workflows":{"description":"Array of workflows with the same schema as the current one.","type":"array","items":{"type":"object"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},"rmsId":{"description":"Identity used to track jobs originated from command-line","type":"string"},"status":{"description":"job status","enum":["pre-submission","queued","submitted","active","finished","terminate-queued","terminated","error","deleted","timeout"]},"startTime":{"description":"Approximate start time of the job. e.g. within 10 min","type":"string"},"workDir":{"description":"The path to the working directory of this job, when the job originates from command-line","type":"string"},"compute":{"$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}},"_project":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}},"_material":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}},"parent":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}},"runtimeContext":{"description":"Context variables that the job will have access to at runtime","type":"object"},"scopeTrack":{"description":"history of the workflow scope on each update","type":"array","items":{"type":"object","properties":{"repetition":{"type":"number"},"scope":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow scope schema","type":"object","required":["global","local"],"properties":{"global":{"type":"object","additionalProperties":true},"local":{"type":"object","additionalProperties":true}}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$id":"material/consistency-check","$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}},{"$id":"material/conventional","$schema":"http://json-schema.org/draft-07/schema#","title":"material conventional schema","type":"object","properties":{"conventional":{"type":"object"}}},{"$id":"material","$schema":"http://json-schema.org/draft-07/schema#","title":"material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$id":"materials-category/compound-pristine-structures/two-dimensional/interface/configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Interface Configuration Schema","description":"A two-dimensional interface between two slabs, optionally including vacuum, with a specified stacking direction.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":3,"description":"Components of the interface: slab, slab and vacuum","items":[{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Strained Supercell Configuration Schema","description":"A slab structure configuration with supercell transformation and strain matrix in the xy plane","required":["direction","stack_components","strain_matrix","xy_supercell_matrix"],"type":"object","properties":{"xy_supercell_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 2D Schema","description":"Supercell matrix for xy plane transformations","type":"array","minItems":2,"maxItems":2,"default":[[1,0],[0,1]],"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},"strain_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}}]},{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Strained Supercell Configuration Schema","description":"A slab structure configuration with supercell transformation and strain matrix in the xy plane","required":["direction","stack_components","strain_matrix","xy_supercell_matrix"],"type":"object","properties":{"xy_supercell_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 2D Schema","description":"Supercell matrix for xy plane transformations","type":"array","minItems":2,"maxItems":2,"default":[[1,0],[0,1]],"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},"strain_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"xy_shift":{"default":[0,0],"description":"xy shift for the film as cartesian 2D vector on the xy plane.","$schema":"http://json-schema.org/draft-07/schema#","title":"vector 2d schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/defective-structures/one-dimensional/grain-boundary-linear/configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Grain Boundary Linear Configuration Schema","description":"Configuration for creating a linear grain boundary.","required":["stack_components","direction"],"type":"object","properties":{"stack_components":{"maxItems":2,"type":"array","minItems":2,"description":"Components of the interface: slab, slab and vacuum","items":[{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Strained Supercell Configuration Schema","description":"A slab structure configuration with supercell transformation and strain matrix in the xy plane","required":["direction","stack_components","strain_matrix","xy_supercell_matrix"],"type":"object","properties":{"xy_supercell_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 2D Schema","description":"Supercell matrix for xy plane transformations","type":"array","minItems":2,"maxItems":2,"default":[[1,0],[0,1]],"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},"strain_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}}]},{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Strained Supercell Configuration Schema","description":"A slab structure configuration with supercell transformation and strain matrix in the xy plane","required":["direction","stack_components","strain_matrix","xy_supercell_matrix"],"type":"object","properties":{"xy_supercell_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 2D Schema","description":"Supercell matrix for xy plane transformations","type":"array","minItems":2,"maxItems":2,"default":[[1,0],[0,1]],"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},"strain_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"x","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"actual_angle":{"type":"number","description":"The actual angle between the two phases","minimum":0,"maximum":360},"xy_shift":{"default":[0,0],"description":"xy shift for the film as cartesian 2D vector on the xy plane.","$schema":"http://json-schema.org/draft-07/schema#","title":"vector 2d schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/defective-structures/two-dimensional/adatom/configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Adatom Defect Configuration Schema","description":"An adatom point defect configuration where an atom is added to a surface site on a slab.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":3,"maxItems":3,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Point Defect Site Schema","description":"A crystal site with defect information (atom or vacancy) for point defects","type":"object","required":["coordinate","crystal","element"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"element":{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atom Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]}},"required":["chemical_element"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacancy Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"default":"Vac","description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}},"required":["chemical_element"]}]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/defective-structures/two-dimensional/grain-boundary-planar/configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Grain Boundary Planar Configuration Schema","description":"Configuration for creating a grain boundary between two phases.","type":"object","required":["stack_components","direction"],"properties":{"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"stack_components":{"type":"array","minItems":2,"maxItems":3,"description":"Components of the interface: slab, slab and vacuum","items":[{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Strained Supercell Configuration Schema","description":"A slab structure configuration with supercell transformation and strain matrix in the xy plane","required":["direction","stack_components","strain_matrix","xy_supercell_matrix"],"type":"object","properties":{"xy_supercell_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 2D Schema","description":"Supercell matrix for xy plane transformations","type":"array","minItems":2,"maxItems":2,"default":[[1,0],[0,1]],"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},"strain_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}}]},{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Strained Supercell Configuration Schema","description":"A slab structure configuration with supercell transformation and strain matrix in the xy plane","required":["direction","stack_components","strain_matrix","xy_supercell_matrix"],"type":"object","properties":{"xy_supercell_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 2D Schema","description":"Supercell matrix for xy plane transformations","type":"array","minItems":2,"maxItems":2,"default":[[1,0],[0,1]],"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},"strain_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}}]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"xy_shift":{"default":[0,0],"description":"xy shift for the film as cartesian 2D vector on the xy plane.","$schema":"http://json-schema.org/draft-07/schema#","title":"vector 2d schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/defective-structures/two-dimensional/island/configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Island Defect Configuration Schema","description":"An island defect configuration where a void region is created in a slab, leaving an island of material.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":3,"maxItems":3,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Schema","description":"A component of a stack, which can be a crystal or a vacuum","required":["merge_components","merge_method"],"type":"object","properties":{"merge_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Void Region Schema","description":"A void region that applies coordinate condition to a crystal or slab and creates a void region","required":["crystal","coordinate_condition"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"coordinate_condition":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Conditions Schema","description":"Combined schema for all coordinate condition types","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Box Coordinate Condition Schema","required":["max_coordinate","min_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"box","default":"box","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"min_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"max_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Sphere Coordinate Condition Schema","required":["radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"sphere","default":"sphere","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Cylinder Coordinate Condition Schema","required":["max_z","min_z","radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"cylinder","default":"cylinder","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Triangular Prism Coordinate Condition Schema","required":["max_z","min_z","position_on_surface_1","position_on_surface_2","position_on_surface_3","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"triangular_prism","default":"triangular_prism","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"position_on_surface_1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Plane Coordinate Condition Schema","required":["plane_normal","plane_point_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"plane","default":"plane","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"plane_normal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"plane_point_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}]}}}]},"merge_method":{"default":"REPLACE","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/defective-structures/two-dimensional/terrace/configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Terrace Defect Configuration Schema","description":"An terrace defect configuration where a void region is created in a slab that is stacked with another slab, creating a terrace.","required":["cut_direction","direction","stack_components"],"type":"object","properties":{"stack_components":{"type":"array","minItems":3,"maxItems":3,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Schema","description":"A component of a stack, which can be a crystal or a vacuum","required":["merge_components","merge_method"],"type":"object","properties":{"merge_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Void Region Schema","description":"A void region that applies coordinate condition to a crystal or slab and creates a void region","required":["crystal","coordinate_condition"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"coordinate_condition":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Conditions Schema","description":"Combined schema for all coordinate condition types","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Box Coordinate Condition Schema","required":["max_coordinate","min_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"box","default":"box","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"min_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"max_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Sphere Coordinate Condition Schema","required":["radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"sphere","default":"sphere","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Cylinder Coordinate Condition Schema","required":["max_z","min_z","radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"cylinder","default":"cylinder","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Triangular Prism Coordinate Condition Schema","required":["max_z","min_z","position_on_surface_1","position_on_surface_2","position_on_surface_3","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"triangular_prism","default":"triangular_prism","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"position_on_surface_1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Plane Coordinate Condition Schema","required":["plane_normal","plane_point_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"plane","default":"plane","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"plane_normal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"plane_point_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}]}}}]},"merge_method":{"default":"REPLACE","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"cut_direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/defective-structures/zero-dimensional/point-defect/base-configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Point Defect Base Configuration Schema","description":"Base configuration for a point defect in a host crystal using merge operation.","required":["merge_components","merge_method"],"properties":{"merge_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}]},"merge_method":{"default":"REPLACE","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]}}},{"$id":"materials-category/defective-structures/zero-dimensional/point-defect/interstitial","$schema":"http://json-schema.org/draft-07/schema#","title":"Interstitial Point Defect Schema","description":"An interstitial point defect configuration where an atom is added to an interstitial site.","required":["merge_components","merge_method"],"properties":{"merge_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Point Defect Site Schema","description":"A crystal site with defect information (atom or vacancy) for point defects","type":"object","required":["coordinate","crystal","element"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"element":{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atom Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]}},"required":["chemical_element"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacancy Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"default":"Vac","description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}},"required":["chemical_element"]}]}}}]},"merge_method":{"default":"REPLACE","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]}}},{"$id":"materials-category/defective-structures/zero-dimensional/point-defect/substitutional","$schema":"http://json-schema.org/draft-07/schema#","title":"Substitutional Point Defect Schema","description":"A substitutional point defect configuration where an atom at a crystal site is replaced with a different element.","required":["merge_components","merge_method"],"properties":{"merge_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Point Defect Site Schema","description":"A crystal site with defect information (atom or vacancy) for point defects","type":"object","required":["coordinate","crystal","element"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"element":{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atom Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]}},"required":["chemical_element"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacancy Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"default":"Vac","description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}},"required":["chemical_element"]}]}}}]},"merge_method":{"default":"REPLACE","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]}}},{"$id":"materials-category/defective-structures/zero-dimensional/point-defect/vacancy","$schema":"http://json-schema.org/draft-07/schema#","title":"Vacancy Point Defect Schema","description":"A vacancy point defect configuration where an atom is removed from a crystal site.","required":["merge_components","merge_method"],"properties":{"merge_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacancy Schema","description":"A chemical element that can be placed at a crystal site","type":"object","required":["chemical_element"],"properties":{"chemical_element":{"default":"Vac","description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}}}]},"merge_method":{"default":"REPLACE","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]}}},{"$id":"materials-category/pristine-structures/three-dimensional/ideal-crystal","$schema":"http://json-schema.org/draft-07/schema#","title":"Ideal Crystal Schema","description":"An ideal, perfect crystal structure","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$id":"materials-category/pristine-structures/two-dimensional/nanoribbon","$schema":"http://json-schema.org/draft-07/schema#","title":"Nanoribbon Configuration Schema","description":"A nanoribbon unit cell consisting of nanotape and vacuum stacked in X direction.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"NanoTape Configuration Schema","description":"A nanotape unit cell consisting of crystal lattice lines and vacuum stacked in Y direction.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Lattice Lines Unique Repeated Schema","description":"Crystal lattice lines unique with integer number of repetitions, forming a full periodic structure with terminations","type":"object","required":["crystal","miller_indices_2d","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"termination_bottom":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions_width":{"type":"integer","minimum":1,"default":1,"description":"Number of repetitions in width direction"},"number_of_repetitions_length":{"type":"integer","minimum":1,"default":1,"description":"Number of repetitions in length direction"},"miller_indices_2d":{"$schema":"http://json-schema.org/draft-07/schema#","title":"2D Miller Indices Schema","description":"The (u,v) Miller indices for the line direction","type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"y","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"x","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/pristine-structures/two-dimensional/nanotape","$schema":"http://json-schema.org/draft-07/schema#","title":"NanoTape Configuration Schema","description":"A nanotape unit cell consisting of crystal lattice lines and vacuum stacked in Y direction.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Lattice Lines Unique Repeated Schema","description":"Crystal lattice lines unique with integer number of repetitions, forming a full periodic structure with terminations","type":"object","required":["crystal","miller_indices_2d","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"termination_bottom":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions_width":{"type":"integer","minimum":1,"default":1,"description":"Number of repetitions in width direction"},"number_of_repetitions_length":{"type":"integer","minimum":1,"default":1,"description":"Number of repetitions in length direction"},"miller_indices_2d":{"$schema":"http://json-schema.org/draft-07/schema#","title":"2D Miller Indices Schema","description":"The (u,v) Miller indices for the line direction","type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"y","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/pristine-structures/two-dimensional/slab","$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/pristine-structures/two-dimensional/slab-strained-supercell","$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Strained Supercell Configuration Schema","description":"A slab structure configuration with supercell transformation and strain matrix in the xy plane","required":["direction","stack_components","strain_matrix","xy_supercell_matrix"],"type":"object","properties":{"xy_supercell_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 2D Schema","description":"Supercell matrix for xy plane transformations","type":"array","minItems":2,"maxItems":2,"default":[[1,0],[0,1]],"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},"strain_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category/processed-structures/two-dimensional/passivation/configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Passivation Configuration Schema","description":"Configuration for a passivation that adds passivating atoms to a material surface.","required":["bond_length","merge_components","merge_method","passivant"],"properties":{"merge_components":{"type":"array","minItems":2,"items":{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Point Defect Site Schema","description":"A crystal site with defect information (atom or vacancy) for point defects","type":"object","required":["coordinate","crystal","element"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"element":{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atom Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]}},"required":["chemical_element"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacancy Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"default":"Vac","description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}},"required":["chemical_element"]}]}}}]}},"merge_method":{"default":"ADD","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]},"passivant":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atom Schema","description":"A chemical element that can be placed at a crystal site","type":"object","required":["chemical_element"],"properties":{"chemical_element":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]}}},"bond_length":{"type":"number","default":1,"description":"The bond length for the passivating atoms"}}},{"$id":"materials-category-components/entities/auxiliary/one-dimensional/miller-indices-2d","$schema":"http://json-schema.org/draft-07/schema#","title":"2D Miller Indices Schema","description":"The (u,v) Miller indices for the line direction","type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}},{"$id":"materials-category-components/entities/auxiliary/three-dimensional/supercell-matrix-3d","$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 3D Schema","description":"3x3 matrix of integers for transforming a unit cell into a supercell","type":"array","minItems":3,"maxItems":3,"default":[[1,0,0],[0,1,0],[0,0,1]],"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 integer elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}}},{"$id":"materials-category-components/entities/auxiliary/two-dimensional/miller-indices","$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},{"$id":"materials-category-components/entities/auxiliary/two-dimensional/supercell-matrix-2d","$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 2D Schema","description":"Supercell matrix for xy plane transformations","type":"array","minItems":2,"maxItems":2,"default":[[1,0],[0,1]],"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}}},{"$id":"materials-category-components/entities/auxiliary/two-dimensional/termination","$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},{"$id":"materials-category-components/entities/auxiliary/zero-dimensional/crystal-site","$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Site Schema","description":"A site in a crystal that can be populated with an atom, vacancy, or void. Should be place in a target basis.","type":"object","required":["crystal","coordinate"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$id":"materials-category-components/entities/auxiliary/zero-dimensional/point-defect-site","$schema":"http://json-schema.org/draft-07/schema#","title":"Point Defect Site Schema","description":"A crystal site with defect information (atom or vacancy) for point defects","type":"object","required":["coordinate","crystal","element"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"element":{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atom Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]}},"required":["chemical_element"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacancy Schema","description":"A chemical element that can be placed at a crystal site","type":"object","properties":{"chemical_element":{"default":"Vac","description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}},"required":["chemical_element"]}]}}},{"$id":"materials-category-components/entities/auxiliary/zero-dimensional/void-region","$schema":"http://json-schema.org/draft-07/schema#","title":"Void Region Schema","description":"A void region that applies coordinate condition to a crystal or slab and creates a void region","required":["crystal","coordinate_condition"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"coordinate_condition":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Conditions Schema","description":"Combined schema for all coordinate condition types","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Box Coordinate Condition Schema","required":["max_coordinate","min_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"box","default":"box","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"min_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"max_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Sphere Coordinate Condition Schema","required":["radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"sphere","default":"sphere","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Cylinder Coordinate Condition Schema","required":["max_z","min_z","radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"cylinder","default":"cylinder","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Triangular Prism Coordinate Condition Schema","required":["max_z","min_z","position_on_surface_1","position_on_surface_2","position_on_surface_3","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"triangular_prism","default":"triangular_prism","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"position_on_surface_1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Plane Coordinate Condition Schema","required":["plane_normal","plane_point_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"plane","default":"plane","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"plane_normal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"plane_point_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}]}}},{"$id":"materials-category-components/entities/core/three-dimensional/crystal","$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$id":"materials-category-components/entities/core/three-dimensional/void","$schema":"http://json-schema.org/draft-07/schema#","title":"Void Schema","description":"A void that can be placed into a crystal, removing all atoms inside","type":"object","required":["center_coordinate","shape"],"properties":{"center_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"shape":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Conditions Schema","description":"Combined schema for all coordinate condition types","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Box Coordinate Condition Schema","required":["max_coordinate","min_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"box","default":"box","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"min_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"max_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Sphere Coordinate Condition Schema","required":["radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"sphere","default":"sphere","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Cylinder Coordinate Condition Schema","required":["max_z","min_z","radius","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"cylinder","default":"cylinder","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"radius":{"type":"number","minimum":0},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Triangular Prism Coordinate Condition Schema","required":["max_z","min_z","position_on_surface_1","position_on_surface_2","position_on_surface_3","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"triangular_prism","default":"triangular_prism","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"position_on_surface_1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"position_on_surface_3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 2 number elements schema","type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"min_z":{"type":"number"},"max_z":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Plane Coordinate Condition Schema","required":["plane_normal","plane_point_coordinate","shape"],"description":"Base interface for coordinate shape filters","type":"object","properties":{"shape":{"const":"plane","default":"plane","$schema":"http://json-schema.org/draft-07/schema#","title":"Coordinate Shape Enum","type":"string","enum":["cylinder","sphere","box","triangular_prism","plane"]},"plane_normal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"plane_point_coordinate":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}]}}},{"$id":"materials-category-components/entities/core/two-dimensional/vacuum","$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}},{"$id":"materials-category-components/entities/core/zero-dimensional/atom","$schema":"http://json-schema.org/draft-07/schema#","title":"Atom Schema","description":"A chemical element that can be placed at a crystal site","type":"object","required":["chemical_element"],"properties":{"chemical_element":{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]}}},{"$id":"materials-category-components/entities/core/zero-dimensional/vacancy","$schema":"http://json-schema.org/draft-07/schema#","title":"Vacancy Schema","description":"A chemical element that can be placed at a crystal site","type":"object","required":["chemical_element"],"properties":{"chemical_element":{"default":"Vac","description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}}},{"$id":"materials-category-components/entities/reusable/one-dimensional/crystal-lattice-lines","$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Lattice Lines Schema","description":"A set of crystal lattice lines defined by 2D Miller indices","type":"object","required":["crystal","miller_indices_2d"],"properties":{"miller_indices_2d":{"$schema":"http://json-schema.org/draft-07/schema#","title":"2D Miller Indices Schema","description":"The (u,v) Miller indices for the line direction","type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$id":"materials-category-components/entities/reusable/one-dimensional/crystal-lattice-lines-unique-repeated","$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Lattice Lines Unique Repeated Schema","description":"Crystal lattice lines unique with integer number of repetitions, forming a full periodic structure with terminations","type":"object","required":["crystal","miller_indices_2d","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"termination_bottom":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions_width":{"type":"integer","minimum":1,"default":1,"description":"Number of repetitions in width direction"},"number_of_repetitions_length":{"type":"integer","minimum":1,"default":1,"description":"Number of repetitions in length direction"},"miller_indices_2d":{"$schema":"http://json-schema.org/draft-07/schema#","title":"2D Miller Indices Schema","description":"The (u,v) Miller indices for the line direction","type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$id":"materials-category-components/entities/reusable/three-dimensional/crystal-lattice-base","$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Lattice Base Schema","description":"Base schema for crystal lattice structures defined by crystal and miller indices","type":"object","required":["crystal"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$id":"materials-category-components/entities/reusable/three-dimensional/repetitions","$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Repetitions Schema","description":"Number of unit cells to repeat in each direction for a crystal structure.","type":"array","minItems":3,"maxItems":3,"default":[1,1,1],"items":{"type":"integer","minimum":1}},{"$id":"materials-category-components/entities/reusable/three-dimensional/strained-non-uniform","$schema":"http://json-schema.org/draft-07/schema#","title":"Non-Uniformly Strained Crystal Configuration Schema","description":"A crystal structure with non-uniform strain applied using a strain matrix","type":"object","required":["crystal","strain_matrix"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"strain_matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}},{"$id":"materials-category-components/entities/reusable/three-dimensional/strained-uniform","$schema":"http://json-schema.org/draft-07/schema#","title":"Uniformly Strained Crystal Configuration Schema","description":"A crystal structure with uniform strain applied","type":"object","required":["crystal","strain_percentage"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"strain_percentage":{"type":"number","description":"Percentage of uniform strain to apply to the crystal structure"}}},{"$id":"materials-category-components/entities/reusable/three-dimensional/supercell","$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Configuration Schema","description":"A repeated crystal structure defined by a transformation matrix","type":"object","required":["crystal","matrix"],"properties":{"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}},{"$id":"materials-category-components/entities/reusable/two-dimensional/atomic-layers","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Schema","description":"A set of atomic layers defined by a plane in a crystal structure with specific terminations","type":"object","required":["crystal","miller_indices","terminations"],"properties":{"terminations":{"type":"array","minItems":1,"description":"All possible terminations for this orientation.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}}},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$id":"materials-category-components/entities/reusable/two-dimensional/atomic-layers-unique","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Schema","description":"A set of unique atomic layers defined by a plane in a crystal structure, including all possible terminations","type":"object","required":["crystal","miller_indices","terminations"],"properties":{"terminations":{"type":"array","minItems":1,"description":"All possible terminations for this orientation.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}}},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$id":"materials-category-components/entities/reusable/two-dimensional/atomic-layers-unique-repeated","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$id":"materials-category-components/entities/reusable/two-dimensional/crystal-lattice-planes","$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Lattice Planes Schema","description":"A set of all possible planes in a crystal defined by Miller indices","type":"object","required":["crystal","miller_indices"],"properties":{"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$id":"materials-category-components/entities/reusable/two-dimensional/slab-stack-configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Stack Configuration Schema","description":"Base configuration for a slab stack with another component and vacuum in the z-direction.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":3,"maxItems":3,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Slab Configuration Schema","description":"A slab unit cell consisting of repeated unique atomic layers and vacuum.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array","minItems":2,"maxItems":2,"items":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic Layers Unique Repeated Schema","description":"Atomic layers unique with an integer number of repetitions, forming a full periodic structure with top layer specified by the termination","type":"object","required":["crystal","miller_indices","number_of_repetitions","termination_top"],"properties":{"termination_top":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Termination Schema","description":"Defines a specific termination of a slab","type":"object","required":["chemical_elements","space_group_symmetry_label"],"properties":{"chemical_elements":{"title":"Chemical Elements","description":"Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')","type":"string","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"type":"string","description":"A string representing a stoichiometric formula for surface atoms of a plane, e.g. 'SrTiO', 'SrO', 'O2' or 'Hf2O'","pattern":"^([A-Z][a-z]?[0-9]*)+$"}]},"space_group_symmetry_label":{"title":"Space Group Symmetry Label","description":"Space group symmetry designation for the termination","type":"string"}}},"number_of_repetitions":{"type":"integer","minimum":1,"description":"Number of repetitions of the unique atomic layers"},"miller_indices":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Miller Indices Schema","description":"Miller indices [h, k, l] defining crystallographic planes","default":[0,0,1],"type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"use_conventional_cell":{"type":"boolean","description":"Use the conventional cell for the crystal structure","default":true}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"type":"object"},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Vacuum Configuration Schema","description":"A vacuum slab that breaks periodicity in a specified direction","type":"object","required":["direction","size","crystal"],"properties":{"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"size":{"type":"number","description":"Size of the vacuum slab in angstroms","minimum":0,"default":10},"crystal":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Crystal Schema","description":"A crystal structure, referencing the base material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}}}}]},"direction":{"default":"z","$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category-components/operations/core/combinations/enums","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]},{"$id":"materials-category-components/operations/core/combinations/merge","$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Schema","description":"A component of a stack, which can be a crystal or a vacuum","required":["merge_components","merge_method"],"properties":{"merge_components":{"type":"array"},"merge_method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Merge Methods Enum","description":"Available methods for merging components","type":"string","enum":["ADD","REPLACE","YIELD"]}}},{"$id":"materials-category-components/operations/core/combinations/stack","$schema":"http://json-schema.org/draft-07/schema#","title":"Stack Schema","description":"A stack of components in a certain direction. The specific types of components should be defined by the inheriting schema.","type":"object","required":["stack_components","direction"],"properties":{"stack_components":{"type":"array"},"direction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Axis Enum","type":"string","description":"Enum for axis types","enum":["x","y","z"]},"gaps":{"description":"Gap distances between stack components as array of objects with id and value","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id and value schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"type":"number","description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"materials-category-components/operations/core/modifications/perturb","$schema":"http://json-schema.org/draft-07/schema#","title":"Perturbation Schema","description":"A perturbation operation that modifies a configuration by applying a perturbation to atoms coordinates.","type":"object","properties":{"material":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material schema","type":"object","required":["basis","lattice","name"],"properties":{"formula":{"description":"reduced chemical formula","type":"string"},"unitCellFormula":{"description":"chemical formula based on the number of atoms of each element in the supercell","type":"string"},"basis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},"lattice":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},"derivedProperties":{"$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},"external":{"$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","origin","source"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string","enum":["MaterialsProject","MaterialsProjectLegacy","ICSD","2dmatpedia","MaterialsVirtualLab"]},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},"src":{"$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},"scaledHash":{"description":"Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).","type":"string"},"icsdId":{"description":"Corresponding ICSD id of the material","type":"integer"},"isNonPeriodic":{"description":"Whether to work in the finite molecular picture (usually with atomic orbital basis)","type":"boolean"},"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"material consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"name":{"type":"string","enum":["default","atomsTooClose","atomsOverlap"],"description":"Name of the consistency check that is performed, which is listed in an enum."},"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}},"metadata":{"type":"object","properties":{"boundaryConditions":{"type":"object","required":["type","offset"],"properties":{"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},"perturbation_function":{"type":"string","description":"A function that defines the perturbation (delta in coordinates) to be applied to the atomic coordinates."}}},{"$id":"materials-category-components/operations/core/modifications/repeat","$schema":"http://json-schema.org/draft-07/schema#","title":"Repeat Schema","properties":{"matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Supercell Matrix 3D Schema","description":"3x3 matrix of integers for transforming a unit cell into a supercell","type":"array","minItems":3,"maxItems":3,"default":[[1,0,0],[0,1,0],[0,0,1]],"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 integer elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"integer"}}}}},{"$id":"materials-category-components/operations/core/modifications/strain","$schema":"http://json-schema.org/draft-07/schema#","title":"Strain Schema","properties":{"matrix":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}},{"$id":"method/categorized-method","$schema":"http://json-schema.org/draft-07/schema#","title":"categorized method","type":"object","required":["name","units"],"properties":{"units":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"categorized unit method","type":"object","required":["name"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable categories schema","description":"Used to categorize entities such as models and methods","type":"object","properties":{"tier1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"method/method-parameters","$schema":"http://json-schema.org/draft-07/schema#","title":"MethodParameters","oneOf":[{"type":"object","properties":{"basisSlug":{"enum":["cc-pvdz","cc-pvtz","cc-pvqz"]}}},{"type":"object","properties":{"basisSlug":{"enum":["3-21G","6-31G","6-311G"]}}},{"type":"object","properties":{"basisSlug":{"enum":["sto-3g","sto-4g","sto-6g","def2-svp","def2-tzvp","def2-qzvp","cbs-qb3"]}}}]},{"$id":"method/unit-method","$schema":"http://json-schema.org/draft-07/schema#","title":"categorized unit method","type":"object","required":["name"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable categories schema","description":"Used to categorize entities such as models and methods","type":"object","properties":{"tier1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"method","$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}},{"$id":"methods-category/mathematical/diff/enum-options","finiteDifference":{"enum":["fd"]}},{"$id":"methods-category/mathematical/diff/fd","$schema":"http://json-schema.org/draft-07/schema#","title":"Finite difference method category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["fd"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/diff","$schema":"http://json-schema.org/draft-07/schema#","title":"Numerical differentiation category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/discr/enum-options","meshing":{"enum":["mesh"]}},{"$id":"methods-category/mathematical/discr/mesh/enum-options","hybridMesh":{"enum":["hybrid"]},"unstructuredMesh":{"enum":["nstruct"]},"structuredMesh":{"enum":["struct"]}},{"$id":"methods-category/mathematical/discr/mesh/hybrid","$schema":"http://json-schema.org/draft-07/schema#","title":"Hybrid meshing category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["hybrid"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["mesh"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["discr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/discr/mesh/nstruct","$schema":"http://json-schema.org/draft-07/schema#","title":"Unstructured meshing category nstruct schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["nstruct"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["mesh"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["discr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/discr/mesh/struct/cartesian","$schema":"http://json-schema.org/draft-07/schema#","title":"Cartesian grid schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["cartesian"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["struct"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["mesh"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["discr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/discr/mesh/struct/enum-options","cartesian":{"enum":["cartesian"]}},{"$id":"methods-category/mathematical/discr/mesh/struct","$schema":"http://json-schema.org/draft-07/schema#","title":"Structured meshing category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["struct"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["mesh"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["discr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/discr/mesh","$schema":"http://json-schema.org/draft-07/schema#","title":"Meshing method category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["mesh"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["discr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/discr","$schema":"http://json-schema.org/draft-07/schema#","title":"Discretization category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["discr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/enum-options","differentiation":{"enum":["diff"]},"discretization":{"enum":["discr"]},"functionApproximation":{"enum":["fapprx"]},"integration":{"enum":["intgr"]},"linearAlgebra":{"enum":["linalg"]},"optimization":{"enum":["opt"]},"regressionTypes":{"enum":["linear","kernel_ridge"]},"regressionSubtypes":{"enum":["least_squares","ridge"]}},{"$id":"methods-category/mathematical/fapprx/basisexp","$schema":"http://json-schema.org/draft-07/schema#","title":"Basis expansion category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["basisExp"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["fapprx"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/fapprx/enum-options","basisExpansion":{"enum":["basisExp"]},"interpolation":{"enum":["ipol"]}},{"$id":"methods-category/mathematical/fapprx/ipol/enum-options","linear":{"enum":["lin"]},"polynomial":{"enum":["poly"]},"spline":{"enum":["spline"]}},{"$id":"methods-category/mathematical/fapprx/ipol/lin","$schema":"http://json-schema.org/draft-07/schema#","title":"Linear interpolation category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["lin"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["ipol"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["fapprx"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/fapprx/ipol/poly","$schema":"http://json-schema.org/draft-07/schema#","title":"Polynomial interpolation category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["poly"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["ipol"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["fapprx"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/fapprx/ipol/spline","$schema":"http://json-schema.org/draft-07/schema#","title":"Spline interpolation category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["spline"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["ipol"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["fapprx"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/fapprx/ipol","$schema":"http://json-schema.org/draft-07/schema#","title":"Interpolation category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["ipol"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["fapprx"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/fapprx","$schema":"http://json-schema.org/draft-07/schema#","title":"Unstructured meshing category fapprx schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["fapprx"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/analytic/enum-options","volume":{"enum":["volume"]},"volumeSubtypes":{"enum":["sphere","cube","rect-prism","tri-prism","cylinder","cone","tetrahedron","sq-pyr"]}},{"$id":"methods-category/mathematical/intgr/analytic/volume","$schema":"http://json-schema.org/draft-07/schema#","title":"Analytic volume integral category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["volume"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["sphere","cube","rect-prism","tri-prism","cylinder","cone","tetrahedron","sq-pyr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["analytic"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/analytic","$schema":"http://json-schema.org/draft-07/schema#","title":"Analytic integral category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["analytic"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/diffeq/enum-options","firstOrder":{"enum":["order1"]},"secondOrder":{"enum":["order2"]}},{"$id":"methods-category/mathematical/intgr/diffeq/order1","$schema":"http://json-schema.org/draft-07/schema#","description":"Categories for the numerical integration of differential equations","type":"object","title":"Order1 schema","properties":{"tier3":{"enum":["order1"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diffeq"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/diffeq/order2","$schema":"http://json-schema.org/draft-07/schema#","description":"Categories for the numerical integration of differential equations","type":"object","title":"Order2 schema","properties":{"tier3":{"enum":["order2"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diffeq"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/diffeq","$schema":"http://json-schema.org/draft-07/schema#","title":"Methods for the numerical integration of differential equations schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["diffeq"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/enum-options","analytic":{"enum":["analytic"]},"differentialEquation":{"enum":["diffeq"]},"numericalQuadrature":{"enum":["numquad"]},"transformation":{"enum":["transf"]}},{"$id":"methods-category/mathematical/intgr/numquad/enum-options","gaussQuadrature":{"enum":["gauss"]},"newtonCotes":{"enum":["newcot"]}},{"$id":"methods-category/mathematical/intgr/numquad/gauss","$schema":"http://json-schema.org/draft-07/schema#","title":"Gaussian quadrature rules schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["gauss"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["numquad"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/numquad/newcot","$schema":"http://json-schema.org/draft-07/schema#","title":"Newton-Cotes quadrature rules schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["newcot"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["numquad"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/numquad","$schema":"http://json-schema.org/draft-07/schema#","title":"Methods for the numerical quadrature schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["numquad"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/transf/enum-options","fourierTransformation":{"enum":["fourier"]}},{"$id":"methods-category/mathematical/intgr/transf/fourier","$schema":"http://json-schema.org/draft-07/schema#","description":"Fourier transform methods","title":"Fourier transform methods schema","type":"object","properties":{"type":{"enum":["fourier"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["transf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr/transf","$schema":"http://json-schema.org/draft-07/schema#","description":"Integral transform methods","title":"Integral transform methods schema","type":"object","properties":{"tier2":{"enum":["transf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/intgr","$schema":"http://json-schema.org/draft-07/schema#","title":"Integration category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["intgr"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/linalg/dcomp","$schema":"http://json-schema.org/draft-07/schema#","title":"Matrix decomposition methods schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["dcomp"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["linalg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/linalg/diag/davidson","$schema":"http://json-schema.org/draft-07/schema#","title":"Davidson diagonalization method schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["davidson"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diag"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["linalg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/linalg/diag/enum-options","davidson":{"enum":["davidson"]}},{"$id":"methods-category/mathematical/linalg/diag","$schema":"http://json-schema.org/draft-07/schema#","title":"Matrix diagonalization methods schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["diag"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["linalg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/linalg/enum-options","decomposition":{"enum":["dcomp"]},"diagonalization":{"enum":["diag"]},"linearTransformation":{"enum":["lintra"]},"matrixFunction":{"enum":["matf"]}},{"$id":"methods-category/mathematical/linalg/lintra","$schema":"http://json-schema.org/draft-07/schema#","title":"Linear transformation methods schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["lintra"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["linalg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/linalg/matf","$schema":"http://json-schema.org/draft-07/schema#","title":"Matrix function methods schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["matf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["linalg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/linalg","$schema":"http://json-schema.org/draft-07/schema#","title":"Linear Algebra category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["linalg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/diff/bracket","$schema":"http://json-schema.org/draft-07/schema#","title":"Bracket algorithms for the optimization of differentiable functions schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["bracket"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/diff/enum-options","bracketing":{"enum":["bracket"]},"localDescent":{"enum":["local"]},"firstOrder":{"enum":["order1"]},"secondOrder":{"enum":["order2"]},"nOrder":{"enum":["ordern"]}},{"$id":"methods-category/mathematical/opt/diff/local","$schema":"http://json-schema.org/draft-07/schema#","title":"Local descent methods for the optimization of differentiable functions schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["local"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/diff/order1","$schema":"http://json-schema.org/draft-07/schema#","title":"First order algorithms for the optimization of differentiable functions schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["order1"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/diff/order2","$schema":"http://json-schema.org/draft-07/schema#","title":"Second order algorithms for the optimization of differentiable functions schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["order2"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/diff/ordern/cg","$schema":"http://json-schema.org/draft-07/schema#","title":"Conjugate gradient method schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["cg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["ordern"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/diff/ordern/enum-options","conjugateGradient":{"enum":["cg"]}},{"$id":"methods-category/mathematical/opt/diff/ordern","$schema":"http://json-schema.org/draft-07/schema#","title":"Mixed order and higher order algorithms for the optimization of differentiable functions schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["ordern"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/diff","$schema":"http://json-schema.org/draft-07/schema#","title":"Optimization methods for differentiable functions category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/enum-options","differentiable":{"enum":["diff"]},"nonDifferentiable":{"enum":["ndiff"]},"rootFinding":{"enum":["root"]}},{"$id":"methods-category/mathematical/opt/ndiff/direct","$schema":"http://json-schema.org/draft-07/schema#","title":"Direct algorithms for the optimization of non-differentiable functions category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["direct"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["ndiff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/ndiff/enum-options","direct":{"enum":["direct"]},"population":{"enum":["pop"]},"stochastic":{"enum":["stoch"]}},{"$id":"methods-category/mathematical/opt/ndiff/pop","$schema":"http://json-schema.org/draft-07/schema#","title":"Population algorithms for the optmization of non-differentiable functions category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["pop"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["ndiff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/ndiff/stoch","$schema":"http://json-schema.org/draft-07/schema#","title":"Stochastic algorithms for the optmization of non-differentiable functions category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["stoch"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["ndiff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/ndiff","$schema":"http://json-schema.org/draft-07/schema#","title":"Optimization methods for non-differentiable functions category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["ndiff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/root/bracket","$schema":"http://json-schema.org/draft-07/schema#","title":"Bracketing method for finding roots category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["bracket"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["root"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/root/enum-options","iterative":{"enum":["iterative"]},"bracketing":{"enum":["bracket"]}},{"$id":"methods-category/mathematical/opt/root/iter","$schema":"http://json-schema.org/draft-07/schema#","title":"Iterative method for root finding category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["iterative"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["root"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt/root","$schema":"http://json-schema.org/draft-07/schema#","title":"Root finding category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["root"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/opt","$schema":"http://json-schema.org/draft-07/schema#","title":"Mathematical opt schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/mathematical/regression","$schema":"http://json-schema.org/draft-07/schema#","title":"linear methods category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["linear","kernel_ridge"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["least_squares","ridge"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/enum-options","quantumMechanical":{"enum":["qm"]}},{"$id":"methods-category/physical/qm/enum-options","wavefunction":{"enum":["wf"]}},{"$id":"methods-category/physical/qm/wf/ao/dunning","$schema":"http://json-schema.org/draft-07/schema#","title":"Dunning correlation-consistent basis set category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["dunning"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ao"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm/wf/ao/other","$schema":"http://json-schema.org/draft-07/schema#","title":"Other (neither Pople nor Dunning) basis set category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["other"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ao"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm/wf/ao/pople","$schema":"http://json-schema.org/draft-07/schema#","title":"Pople basis set category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["pople"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ao"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm/wf/ao","$schema":"http://json-schema.org/draft-07/schema#","title":"Approximating the electronic wave function with a atomic orbital basis schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["ao"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["pople","dunning","other"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm/wf/enum-options","planewave":{"enum":["pw"]},"atomicOrbital":{"enum":["ao"]},"wavelet":{"enum":["wvl"]},"smearing":{"enum":["smearing"]},"tetrahedron":{"enum":["tetrahedron"]},"pseudization":{"enum":["psp"]},"pseudoSubtypes":{"enum":["us","nc","nc-fr","paw","coulomb"]},"smearingSubtypes":{"enum":["gaussian","marzari-vanderbilt","methfessel-paxton","fermi-dirac"]},"tetrahedronSubtypes":{"enum":["linear","optimized","bloechl"]},"aoTypes":{"enum":["pople","dunning","other"]}},{"$id":"methods-category/physical/qm/wf/psp","$schema":"http://json-schema.org/draft-07/schema#","title":"Pseudopotential category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["psp"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["us","nc","nc-fr","paw","coulomb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm/wf/pw","$schema":"http://json-schema.org/draft-07/schema#","title":"Plane wave catgeory schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["pw"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm/wf/smearing","$schema":"http://json-schema.org/draft-07/schema#","title":"Smearing methods category schema","description":"Approximating Heaviside step function with smooth function","type":"object","properties":{"type":{"enum":["smearing"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["gaussian","marzari-vanderbilt","methfessel-paxton","fermi-dirac"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm/wf/tetrahedron","$schema":"http://json-schema.org/draft-07/schema#","title":"Tetrahedron method for Brillouin zone integration category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["tetrahedron"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["linear","optimized","bloechl"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm/wf","$schema":"http://json-schema.org/draft-07/schema#","title":"Methods related to wave functions schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-category/physical/qm","$schema":"http://json-schema.org/draft-07/schema#","title":"Quantum-Mechanical method category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"methods-directory/legacy/localorbital","$schema":"http://json-schema.org/draft-07/schema#","title":"legacy method localorbital","type":"object","required":["type","subtype"],"properties":{"type":{"const":"localorbital","description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"const":"pople","description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}},{"$id":"methods-directory/legacy/pseudopotential","$schema":"http://json-schema.org/draft-07/schema#","title":"legacy method pseudopotential","type":"object","required":["type","subtype"],"properties":{"type":{"const":"pseudopotential","description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"enum":["paw","nc","us","any"],"default":"us","description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}},{"$id":"methods-directory/legacy/regression","$schema":"http://json-schema.org/draft-07/schema#","title":"legacy method regression","type":"object","required":["data","precision","subtype","type"],"properties":{"type":{"enum":["linear","kernel_ridge"],"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"enum":["least_squares","ridge"],"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"$schema":"http://json-schema.org/draft-07/schema#","title":"regression precision","type":"object","description":"Object showing the actual possible precision based on theory and implementation","properties":{"perProperty":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"regression precision per property schema","type":"object","required":["trainingError"],"properties":{"name":{"description":"property name in 'flattened' format","type":"string"},"trainingError":{"description":"training error of the estimator","type":"number"},"score":{"description":"prediction score of the estimator. Eg: r2_score","type":"number"}}}}}},"data":{"$schema":"http://json-schema.org/draft-07/schema#","title":"regression data","type":"object","description":"additional data specific to method, eg. array of pseudopotentials","properties":{"perProperty":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"linear regression parameters schema","type":"object","properties":{"intercept":{"description":"intercept (shift) from the linear or non-linear fit of data points","type":"number"},"perFeature":{"type":"array","description":"per-feature (property used for training the ML method/model) parameters","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}}}},"required":["intercept","perFeature"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"kernel-ridge regression parameters schema","type":"object","properties":{"xFit":{"description":"training data","type":"array"},"dualCoefficients":{"description":"dual coefficients","type":"array"},"perFeature":{"type":"array","description":"per-feature (property used for training the ML method/model) parameters","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}}}},"required":["xFit","dualCoefficients","perFeature"]}]}},"dataSet":{"$schema":"http://json-schema.org/draft-07/schema#","description":"dataset for ml","type":"object","required":["exabyteIds"],"properties":{"exabyteIds":{"description":"array of exabyteIds for materials in dataset","type":"array","items":{"type":"string"}},"extra":{"description":"holder for any extra information, eg. coming from user-uploaded CSV file"}}}}}}},{"$id":"methods-directory/legacy/unknown","$schema":"http://json-schema.org/draft-07/schema#","title":"legacy method unknown","type":"object","required":["type","subtype"],"properties":{"type":{"const":"unknown","description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"const":"unknown","description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}},{"$id":"methods-directory/mathematical/cg","$schema":"http://json-schema.org/draft-07/schema#","title":"Unit method conjugate gradient","description":"conjugate gradient method schema","type":"object","required":["categories","name"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Conjugate gradient method schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["cg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["ordern"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diff"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["opt"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/mathematical/davidson","$schema":"http://json-schema.org/draft-07/schema#","title":"Unit method davidson schema","description":"Davidson diagonalization method","type":"object","required":["categories","name"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Davidson diagonalization method schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["davidson"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["diag"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["linalg"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/mathematical/regression/data","$schema":"http://json-schema.org/draft-07/schema#","title":"regression data","type":"object","properties":{"perProperty":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"linear regression parameters schema","type":"object","properties":{"intercept":{"description":"intercept (shift) from the linear or non-linear fit of data points","type":"number"},"perFeature":{"type":"array","description":"per-feature (property used for training the ML method/model) parameters","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}}}},"required":["intercept","perFeature"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"kernel-ridge regression parameters schema","type":"object","properties":{"xFit":{"description":"training data","type":"array"},"dualCoefficients":{"description":"dual coefficients","type":"array"},"perFeature":{"type":"array","description":"per-feature (property used for training the ML method/model) parameters","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}}}},"required":["xFit","dualCoefficients","perFeature"]}]}},"dataSet":{"$schema":"http://json-schema.org/draft-07/schema#","description":"dataset for ml","type":"object","required":["exabyteIds"],"properties":{"exabyteIds":{"description":"array of exabyteIds for materials in dataset","type":"array","items":{"type":"string"}},"extra":{"description":"holder for any extra information, eg. coming from user-uploaded CSV file"}}}}},{"$id":"methods-directory/mathematical/regression/dataset","$schema":"http://json-schema.org/draft-07/schema#","description":"dataset for ml","type":"object","required":["exabyteIds"],"properties":{"exabyteIds":{"description":"array of exabyteIds for materials in dataset","type":"array","items":{"type":"string"}},"extra":{"description":"holder for any extra information, eg. coming from user-uploaded CSV file"}}},{"$id":"methods-directory/mathematical/regression/kernel-ridge/data-per-property","$schema":"http://json-schema.org/draft-07/schema#","title":"kernel-ridge regression parameters schema","type":"object","required":["xFit","dualCoefficients","perFeature"],"properties":{"xFit":{"description":"training data","type":"array"},"dualCoefficients":{"description":"dual coefficients","type":"array"},"perFeature":{"type":"array","description":"per-feature (property used for training the ML method/model) parameters","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}}}}},{"$id":"methods-directory/mathematical/regression/linear/data-per-property","$schema":"http://json-schema.org/draft-07/schema#","title":"linear regression parameters schema","type":"object","required":["intercept","perFeature"],"properties":{"intercept":{"description":"intercept (shift) from the linear or non-linear fit of data points","type":"number"},"perFeature":{"type":"array","description":"per-feature (property used for training the ML method/model) parameters","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}}}}},{"$id":"methods-directory/mathematical/regression/per-feature-item","$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}},{"$id":"methods-directory/mathematical/regression/precision","$schema":"http://json-schema.org/draft-07/schema#","title":"regression precision","type":"object","properties":{"perProperty":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"regression precision per property schema","type":"object","required":["trainingError"],"properties":{"name":{"description":"property name in 'flattened' format","type":"string"},"trainingError":{"description":"training error of the estimator","type":"number"},"score":{"description":"prediction score of the estimator. Eg: r2_score","type":"number"}}}}}},{"$id":"methods-directory/mathematical/regression/precision-per-property","$schema":"http://json-schema.org/draft-07/schema#","title":"regression precision per property schema","type":"object","required":["trainingError"],"properties":{"name":{"description":"property name in 'flattened' format","type":"string"},"trainingError":{"description":"training error of the estimator","type":"number"},"score":{"description":"prediction score of the estimator. Eg: r2_score","type":"number"}}},{"$id":"methods-directory/mathematical/regression","$schema":"http://json-schema.org/draft-07/schema#","title":"unit method regression","type":"object","required":["categories","data","name","precision"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"linear methods category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["linear","kernel_ridge"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["least_squares","ridge"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"precision":{"$schema":"http://json-schema.org/draft-07/schema#","title":"regression precision","type":"object","description":"Object showing the actual possible precision based on theory and implementation","properties":{"perProperty":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"regression precision per property schema","type":"object","required":["trainingError"],"properties":{"name":{"description":"property name in 'flattened' format","type":"string"},"trainingError":{"description":"training error of the estimator","type":"number"},"score":{"description":"prediction score of the estimator. Eg: r2_score","type":"number"}}}}}},"data":{"$schema":"http://json-schema.org/draft-07/schema#","title":"regression data","type":"object","properties":{"perProperty":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"linear regression parameters schema","type":"object","properties":{"intercept":{"description":"intercept (shift) from the linear or non-linear fit of data points","type":"number"},"perFeature":{"type":"array","description":"per-feature (property used for training the ML method/model) parameters","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}}}},"required":["intercept","perFeature"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"kernel-ridge regression parameters schema","type":"object","properties":{"xFit":{"description":"training data","type":"array"},"dualCoefficients":{"description":"dual coefficients","type":"array"},"perFeature":{"type":"array","description":"per-feature (property used for training the ML method/model) parameters","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"per-feature (property used for training the ML method/model) parameters schema","type":"object","required":["name"],"properties":{"coefficient":{"description":"coefficient in linear regression","type":"number"},"name":{"description":"feature name","type":"string"},"importance":{"description":"pvalue: https://en.wikipedia.org/wiki/P-value","type":"number"}}}}},"required":["xFit","dualCoefficients","perFeature"]}]}},"dataSet":{"$schema":"http://json-schema.org/draft-07/schema#","description":"dataset for ml","type":"object","required":["exabyteIds"],"properties":{"exabyteIds":{"description":"array of exabyteIds for materials in dataset","type":"array","items":{"type":"string"}},"extra":{"description":"holder for any extra information, eg. coming from user-uploaded CSV file"}}}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/physical/ao/dunning","$schema":"http://json-schema.org/draft-07/schema#","title":"unit method ao dunning","description":"Dunning correlation-consistent basis set unit method","type":"object","required":["categories","name"],"definitions":{"ao-basis-dunning":{"type":"object","properties":{"basisSlug":{"enum":["cc-pvdz","cc-pvtz","cc-pvqz"]}}}},"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Dunning correlation-consistent basis set category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["dunning"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ao"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"type":"object","description":"Instructive parameters defining the method","properties":{"basisSlug":{"enum":["cc-pvdz","cc-pvtz","cc-pvqz"]}}},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/physical/ao/enum-options","popleAoBasis":{"enum":["3-21G","6-31G","6-311G"]},"dunningAoBasis":{"enum":["cc-pvdz","cc-pvtz","cc-pvqz"]},"otherAoBasis":{"enum":["sto-3g","sto-4g","sto-6g","def2-svp","def2-tzvp","def2-qzvp","cbs-qb3"]}},{"$id":"methods-directory/physical/ao/other","$schema":"http://json-schema.org/draft-07/schema#","title":"unit method ao other","description":"Other (neither Pople nor Dunning) basis set unit method","type":"object","required":["categories","name"],"definitions":{"ao-basis-other":{"type":"object","properties":{"basisSlug":{"enum":["sto-3g","sto-4g","sto-6g","def2-svp","def2-tzvp","def2-qzvp","cbs-qb3"]}}}},"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Other (neither Pople nor Dunning) basis set category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["other"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ao"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"type":"object","description":"Instructive parameters defining the method","properties":{"basisSlug":{"enum":["sto-3g","sto-4g","sto-6g","def2-svp","def2-tzvp","def2-qzvp","cbs-qb3"]}}},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/physical/ao/pople","$schema":"http://json-schema.org/draft-07/schema#","title":"unit method ao pople","description":"Pople basis set unit method","type":"object","required":["categories","name"],"definitions":{"ao-basis-pople":{"type":"object","properties":{"basisSlug":{"enum":["3-21G","6-31G","6-311G"]}}}},"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Pople basis set category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["pople"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ao"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"type":"object","description":"Instructive parameters defining the method","properties":{"basisSlug":{"enum":["3-21G","6-31G","6-311G"]}}},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/physical/psp/file","$schema":"http://json-schema.org/draft-07/schema#","title":"Pseudopotential file","type":"object","properties":{"slug":{"enum":["pseudopotential"]},"data":{"$schema":"http://json-schema.org/draft-07/schema#","title":"File data item","type":"object","required":["element","type","exchangeCorrelation","source","path","apps","name","hash"],"properties":{"element":{"type":"string","description":"chemical element"},"hash":{"type":"string","description":"MD5 hash of the pseudopotential file"},"type":{"enum":["us","nc","nc-fr","paw","coulomb"]},"source":{"type":"string","description":"explains where this came from"},"version":{"type":"string","description":"explains the version of where this came from"},"exchangeCorrelation":{"type":"object","properties":{"approximation":{"description":"DFT approximation","type":"string"},"functional":{"description":"Exchange correlation functional","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"}}},"valenceConfiguration":{"type":"array","description":"contains pseudo orbital information, including orbital names and occupations","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic orbital schema","type":"object","properties":{"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalIndex":{"type":"integer","minimum":1},"principalNumber":{"type":"integer","minimum":1,"maximum":7},"angularMomentum":{"type":"integer","minimum":0,"maximum":3},"occupation":{"type":"number","description":"Shell occupation","minimum":0,"maximum":14}}}},"path":{"type":"string","description":"location of the pseudopotential file on filesystem"},"apps":{"type":"array","description":"The names of the simulation engines that can use this pseudopotential, e.g. espresso","items":{"type":"string"}},"filename":{"type":"string","description":"filename of pseudopotential file on filesystem"},"name":{"type":"string","description":"name of the data category","enum":["pseudopotential"]},"cutoffs":{"type":"object","description":"Suggested cutoff values for wave function and charge density.","additionalProperties":false,"properties":{"wavefunction":{"type":"array","description":"Energy cutoff values for wavefunction plane wave expansion.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}}},"density":{"type":"array","description":"Energy cutoff values for charge density plane wave expansion.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}}}}}}},"source":{"type":"object","description":"TODO: remove in the future","properties":{"info":{"type":"object"},"type":{"type":"string"}}}}},{"$id":"methods-directory/physical/psp/file-data-item","$schema":"http://json-schema.org/draft-07/schema#","title":"File data item","type":"object","required":["element","type","exchangeCorrelation","source","path","apps","name","hash"],"properties":{"element":{"type":"string","description":"chemical element"},"hash":{"type":"string","description":"MD5 hash of the pseudopotential file"},"type":{"enum":["us","nc","nc-fr","paw","coulomb"]},"source":{"type":"string","description":"explains where this came from"},"version":{"type":"string","description":"explains the version of where this came from"},"exchangeCorrelation":{"type":"object","properties":{"approximation":{"description":"DFT approximation","type":"string"},"functional":{"description":"Exchange correlation functional","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"}}},"valenceConfiguration":{"type":"array","description":"contains pseudo orbital information, including orbital names and occupations","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic orbital schema","type":"object","properties":{"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalIndex":{"type":"integer","minimum":1},"principalNumber":{"type":"integer","minimum":1,"maximum":7},"angularMomentum":{"type":"integer","minimum":0,"maximum":3},"occupation":{"type":"number","description":"Shell occupation","minimum":0,"maximum":14}}}},"path":{"type":"string","description":"location of the pseudopotential file on filesystem"},"apps":{"type":"array","description":"The names of the simulation engines that can use this pseudopotential, e.g. espresso","items":{"type":"string"}},"filename":{"type":"string","description":"filename of pseudopotential file on filesystem"},"name":{"type":"string","description":"name of the data category","enum":["pseudopotential"]},"cutoffs":{"type":"object","description":"Suggested cutoff values for wave function and charge density.","additionalProperties":false,"properties":{"wavefunction":{"type":"array","description":"Energy cutoff values for wavefunction plane wave expansion.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}}},"density":{"type":"array","description":"Energy cutoff values for charge density plane wave expansion.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}}}}}}},{"$id":"methods-directory/physical/psp","$schema":"http://json-schema.org/draft-07/schema#","title":"unit method pseudopotential","description":"Core-valence separation by means of pseudopotentials (effective potential)","type":"object","required":["categories","name"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Pseudopotential category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["psp"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["us","nc","nc-fr","paw","coulomb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"data":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Pseudopotential file","type":"object","properties":{"slug":{"enum":["pseudopotential"]},"data":{"$schema":"http://json-schema.org/draft-07/schema#","title":"File data item","type":"object","required":["element","type","exchangeCorrelation","source","path","apps","name","hash"],"properties":{"element":{"type":"string","description":"chemical element"},"hash":{"type":"string","description":"MD5 hash of the pseudopotential file"},"type":{"enum":["us","nc","nc-fr","paw","coulomb"]},"source":{"type":"string","description":"explains where this came from"},"version":{"type":"string","description":"explains the version of where this came from"},"exchangeCorrelation":{"type":"object","properties":{"approximation":{"description":"DFT approximation","type":"string"},"functional":{"description":"Exchange correlation functional","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"}}},"valenceConfiguration":{"type":"array","description":"contains pseudo orbital information, including orbital names and occupations","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic orbital schema","type":"object","properties":{"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalIndex":{"type":"integer","minimum":1},"principalNumber":{"type":"integer","minimum":1,"maximum":7},"angularMomentum":{"type":"integer","minimum":0,"maximum":3},"occupation":{"type":"number","description":"Shell occupation","minimum":0,"maximum":14}}}},"path":{"type":"string","description":"location of the pseudopotential file on filesystem"},"apps":{"type":"array","description":"The names of the simulation engines that can use this pseudopotential, e.g. espresso","items":{"type":"string"}},"filename":{"type":"string","description":"filename of pseudopotential file on filesystem"},"name":{"type":"string","description":"name of the data category","enum":["pseudopotential"]},"cutoffs":{"type":"object","description":"Suggested cutoff values for wave function and charge density.","additionalProperties":false,"properties":{"wavefunction":{"type":"array","description":"Energy cutoff values for wavefunction plane wave expansion.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}}},"density":{"type":"array","description":"Energy cutoff values for charge density plane wave expansion.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}}}}}}},"source":{"type":"object","description":"TODO: remove in the future","properties":{"info":{"type":"object"},"type":{"type":"string"}}}}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/physical/pw","$schema":"http://json-schema.org/draft-07/schema#","title":"unit method plane wave","description":"Approximating the electronic wave function with a plane wave basis","type":"object","required":["categories","name"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Plane wave catgeory schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["pw"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/physical/smearing","$schema":"http://json-schema.org/draft-07/schema#","title":"unit method smearing","description":"Approximating Heaviside step function with smooth function","type":"object","required":["categories","name"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Smearing methods category schema","description":"Approximating Heaviside step function with smooth function","type":"object","properties":{"type":{"enum":["smearing"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["gaussian","marzari-vanderbilt","methfessel-paxton","fermi-dirac"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"methods-directory/physical/tetrahedron","$schema":"http://json-schema.org/draft-07/schema#","title":"unit method tetrahedron","type":"object","required":["categories","name"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Tetrahedron method for Brillouin zone integration category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["tetrahedron"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["linear","optimized","bloechl"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["wf"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"model/categorized-model","$schema":"http://json-schema.org/draft-07/schema#","title":"categorized model","type":"object","required":["categories","method","name","parameters"],"properties":{"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"categorized method","type":"object","required":["name","units"],"properties":{"units":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"categorized unit method","type":"object","required":["name"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable categories schema","description":"Used to categorize entities such as models and methods","type":"object","properties":{"tier1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"description":"Instructive parameters defining the method","type":"object"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable categories schema","description":"Used to categorize entities such as models and methods","type":"object","properties":{"tier1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"type":"object","description":"Model parameters defined in-place or via model mixins"},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"model/mixins/dft/double-hybrid-functional","$schema":"http://json-schema.org/draft-07/schema#","title":"Double hybrid functional mixin","type":"object","properties":{"functional":{"enum":["b2plyp"]}}},{"$id":"model/mixins/dft/enum-options","lda":{"enum":["pz"]},"gga":{"enum":["pbe","pbesol"]},"mgga":{"enum":["scan"]},"hybrid":{"enum":["hse06","b3lyp"]},"doubleHybrid":{"enum":["b2plyp"]}},{"$id":"model/mixins/dft/gga-functional","$schema":"http://json-schema.org/draft-07/schema#","title":"GGA functional mixin","type":"object","additionalProperties":true,"properties":{"functional":{"enum":["pbe","pbesol"]}}},{"$id":"model/mixins/dft/hybrid-functional","$schema":"http://json-schema.org/draft-07/schema#","title":"Hybrid functional mixin","type":"object","properties":{"functional":{"enum":["hse06","b3lyp"]}}},{"$id":"model/mixins/dft/lda-functional","$schema":"http://json-schema.org/draft-07/schema#","title":"LDA functional mixin","type":"object","additionalProperties":true,"properties":{"functional":{"enum":["pz"]}}},{"$id":"model/mixins/dft/mgga-functional","$schema":"http://json-schema.org/draft-07/schema#","title":"Meta-GGA functional mixin","type":"object","additionalProperties":true,"properties":{"functional":{"enum":["scan"]}}},{"$id":"model/mixins/dispersion-correction","$schema":"http://json-schema.org/draft-07/schema#","title":"Dispersion correction mixin","type":"object","properties":{"dispersionCorrection":{"enum":["dft-d2","dft-d3","xdm","ts"]}}},{"$id":"model/mixins/enum-options","spinPolarization":{"enum":["collinear","non-collinear"]},"dispersionCorrection":{"enum":["dft-d2","dft-d3","xdm","ts"]},"hubbardType":{"enum":["u"]}},{"$id":"model/mixins/hubbard","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard model mixin","type":"object","properties":{"hubbardType":{"enum":["u"]}}},{"$id":"model/mixins/spin-orbit-coupling","$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-orbit coupling mixin","type":"object","additionalProperties":true,"properties":{"spinOrbitCoupling":{"type":"boolean"}}},{"$id":"model/mixins/spin-polarization","$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-polarization mixin","type":"object","additionalProperties":true,"properties":{"spinPolarization":{"enum":["collinear","non-collinear"]}}},{"$id":"model/model-parameters","$schema":"http://json-schema.org/draft-07/schema#","title":"ModelParameters","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"LDA functional mixin","type":"object","properties":{"functional":{"enum":["pz"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"GGA functional mixin","type":"object","properties":{"functional":{"enum":["pbe","pbesol"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Meta-GGA functional mixin","type":"object","properties":{"functional":{"enum":["scan"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hybrid functional mixin","type":"object","properties":{"functional":{"enum":["hse06","b3lyp"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Double hybrid functional mixin","type":"object","properties":{"functional":{"enum":["b2plyp"]}}}],"additionalProperties":true,"properties":{"hubbardType":{"enum":["u"]},"spinPolarization":{"enum":["collinear","non-collinear"]},"spinOrbitCoupling":{"type":"boolean"},"dispersionCorrection":{"enum":["dft-d2","dft-d3","xdm","ts"]}}},{"$id":"model/model-without-method","$schema":"http://json-schema.org/draft-07/schema#","title":"model without method schema (base)","type":"object","required":["categories","name","parameters"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable categories schema","description":"Used to categorize entities such as models and methods","type":"object","properties":{"tier1":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"type":"object","description":"Model parameters defined in-place or via model mixins"},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"model","$schema":"http://json-schema.org/draft-07/schema#","title":"base model","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},{"$id":"models-category/enum-options","physicsBased":{"enum":["pb"]},"statistical":{"enum":["st"]}},{"$id":"models-category/pb/enum-options","quantumMechanical":{"enum":["qm"]}},{"$id":"models-category/pb/qm/abin/enum-options","gwApproximation":{"enum":["gw"]},"gwSubtypes":{"enum":["g0w0","evgw0","evgw"]}},{"$id":"models-category/pb/qm/abin/gw","$schema":"http://json-schema.org/draft-07/schema#","title":"GW category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["gw"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["g0w0","evgw0","evgw"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["abin"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/abin","$schema":"http://json-schema.org/draft-07/schema#","title":"Ab initio category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["abin"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/dft/enum-options","kohnSham":{"enum":["ksdft"]}},{"$id":"models-category/pb/qm/dft/ksdft/double-hybrid","$schema":"http://json-schema.org/draft-07/schema#","title":"DFT double hybrid functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["double-hybrid"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/dft/ksdft/enum-options","localDensityApproximation":{"enum":["lda"]},"generalizedGradientApproximation":{"enum":["gga"]},"metaGGA":{"enum":["mgga"]},"hybrid":{"enum":["hybrid"]},"doubleHybrid":{"enum":["double-hybrid"]}},{"$id":"models-category/pb/qm/dft/ksdft/gga","$schema":"http://json-schema.org/draft-07/schema#","title":"DFT GGA functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["gga"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/dft/ksdft/hybrid","$schema":"http://json-schema.org/draft-07/schema#","title":"DFT hybrid functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["hybrid"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/dft/ksdft/lda","$schema":"http://json-schema.org/draft-07/schema#","title":"DFT LDA functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["lda"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/dft/ksdft/mgga","$schema":"http://json-schema.org/draft-07/schema#","title":"DFT meta-GGA functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["mgga"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/dft/ksdft","$schema":"http://json-schema.org/draft-07/schema#","title":"Kohn-Sham DFT category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/dft","$schema":"http://json-schema.org/draft-07/schema#","title":"Density functional theory category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm/enum-options","abInitio":{"enum":["abin"]},"densityFunctional":{"enum":["dft"]},"semiEmpirical":{"enum":["semp"]}},{"$id":"models-category/pb/qm/semp","$schema":"http://json-schema.org/draft-07/schema#","title":"Semi-empirical category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["semp"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb/qm","$schema":"http://json-schema.org/draft-07/schema#","title":"Quantum mechanical category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/pb","$schema":"http://json-schema.org/draft-07/schema#","title":"physics-based model category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/st/det/enum-options","machineLearning":{"enum":["ml"]}},{"$id":"models-category/st/det/ml/enum-options","regression":{"enum":["re"]}},{"$id":"models-category/st/det/ml/re","$schema":"http://json-schema.org/draft-07/schema#","title":"regression model category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["re"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["ml"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["det"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["st"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/st/det/ml","$schema":"http://json-schema.org/draft-07/schema#","title":"machine learning model category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier3":{"enum":["ml"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["det"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["st"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/st/det","$schema":"http://json-schema.org/draft-07/schema#","title":"deterministic model category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier2":{"enum":["det"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["st"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-category/st/enum-options","deterministic":{"enum":["det"]}},{"$id":"models-category/st","$schema":"http://json-schema.org/draft-07/schema#","title":"statistical model category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"tier1":{"enum":["st"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},{"$id":"models-directory/double-hybrid","$schema":"http://json-schema.org/draft-07/schema#","title":"model double hybrid functional","type":"object","required":["categories","name","parameters"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"DFT double hybrid functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["double-hybrid"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Double hybrid functional mixin","type":"object","anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-orbit coupling mixin","type":"object","properties":{"spinOrbitCoupling":{"type":"boolean"}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Dispersion correction mixin","type":"object","properties":{"dispersionCorrection":{"enum":["dft-d2","dft-d3","xdm","ts"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-polarization mixin","type":"object","properties":{"spinPolarization":{"enum":["collinear","non-collinear"]}},"additionalProperties":true}],"description":"Model parameters defined in-place or via model mixins","properties":{"functional":{"enum":["b2plyp"]}}},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"models-directory/gga","$schema":"http://json-schema.org/draft-07/schema#","title":"model generalized gradient approximation","type":"object","required":["categories","name","parameters"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"DFT GGA functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["gga"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"$schema":"http://json-schema.org/draft-07/schema#","title":"GGA functional mixin","type":"object","anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-orbit coupling mixin","type":"object","properties":{"spinOrbitCoupling":{"type":"boolean"}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Dispersion correction mixin","type":"object","properties":{"dispersionCorrection":{"enum":["dft-d2","dft-d3","xdm","ts"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-polarization mixin","type":"object","properties":{"spinPolarization":{"enum":["collinear","non-collinear"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard model mixin","type":"object","properties":{"hubbardType":{"enum":["u"]}}}],"description":"Model parameters defined in-place or via model mixins","additionalProperties":true,"properties":{"functional":{"enum":["pbe","pbesol"]}}},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"models-directory/gw","$schema":"http://json-schema.org/draft-07/schema#","title":"model gw approximation","type":"object","required":["categories","name","parameters"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"GW category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["gw"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"enum":["g0w0","evgw0","evgw"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["abin"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"LDA functional mixin","type":"object","properties":{"functional":{"enum":["pz"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"GGA functional mixin","type":"object","properties":{"functional":{"enum":["pbe","pbesol"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Meta-GGA functional mixin","type":"object","properties":{"functional":{"enum":["scan"]}},"additionalProperties":true}],"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-polarization mixin","type":"object","properties":{"spinPolarization":{"enum":["collinear","non-collinear"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-orbit coupling mixin","type":"object","properties":{"spinOrbitCoupling":{"type":"boolean"}},"additionalProperties":true}],"description":"Model parameters defined in-place or via model mixins","properties":{"require":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"}}},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"models-directory/hybrid","$schema":"http://json-schema.org/draft-07/schema#","title":"model hybrid functional","type":"object","required":["categories","name","parameters"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"DFT hybrid functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["hybrid"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hybrid functional mixin","type":"object","anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-orbit coupling mixin","type":"object","properties":{"spinOrbitCoupling":{"type":"boolean"}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Dispersion correction mixin","type":"object","properties":{"dispersionCorrection":{"enum":["dft-d2","dft-d3","xdm","ts"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-polarization mixin","type":"object","properties":{"spinPolarization":{"enum":["collinear","non-collinear"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard model mixin","type":"object","properties":{"hubbardType":{"enum":["u"]}}}],"description":"Model parameters defined in-place or via model mixins","properties":{"functional":{"enum":["hse06","b3lyp"]}}},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"models-directory/lda","$schema":"http://json-schema.org/draft-07/schema#","title":"model local density approximation","type":"object","required":["categories","name","parameters"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"DFT LDA functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["lda"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"$schema":"http://json-schema.org/draft-07/schema#","title":"LDA functional mixin","type":"object","anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-orbit coupling mixin","type":"object","properties":{"spinOrbitCoupling":{"type":"boolean"}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Dispersion correction mixin","type":"object","properties":{"dispersionCorrection":{"enum":["dft-d2","dft-d3","xdm","ts"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-polarization mixin","type":"object","properties":{"spinPolarization":{"enum":["collinear","non-collinear"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard model mixin","type":"object","properties":{"hubbardType":{"enum":["u"]}}}],"description":"Model parameters defined in-place or via model mixins","additionalProperties":true,"properties":{"functional":{"enum":["pz"]}}},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"models-directory/legacy/dft","$schema":"http://json-schema.org/draft-07/schema#","title":"legacy model density functional theory","type":"object","definitions":{"lda":{"properties":{"subtype":{"const":"lda"},"functional":{"enum":["pz","pw","vwn","other"]}}},"gga":{"properties":{"subtype":{"const":"gga"},"functional":{"enum":["pbe","pbesol","pw91","other"]}}},"hybrid":{"properties":{"subtype":{"const":"hybrid"},"functional":{"enum":["b3lyp","hse06"]}}}},"required":["type","subtype","method"],"oneOf":[{"properties":{"subtype":{"const":"lda"},"functional":{"enum":["pz","pw","vwn","other"]}}},{"properties":{"subtype":{"const":"gga"},"functional":{"enum":["pbe","pbesol","pw91","other"]}}},{"properties":{"subtype":{"const":"hybrid"},"functional":{"enum":["b3lyp","hse06"]}}}],"additionalProperties":true,"properties":{"type":{"const":"dft","description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},{"$id":"models-directory/legacy/ml","$schema":"http://json-schema.org/draft-07/schema#","title":"legacy model regression","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"enum":["ml"],"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"enum":["re"],"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},{"$id":"models-directory/legacy/unknown","$schema":"http://json-schema.org/draft-07/schema#","title":"legacy model unknown","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"enum":["unknown"],"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"enum":["unknown"],"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},{"$id":"models-directory/mgga","$schema":"http://json-schema.org/draft-07/schema#","title":"model meta generalized gradient approximation","type":"object","required":["categories","name","parameters"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"DFT meta-GGA functional category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"subtype":{"enum":["mgga"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"type":{"enum":["ksdft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["dft"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["qm"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["pb"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Meta-GGA functional mixin","type":"object","anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-orbit coupling mixin","type":"object","properties":{"spinOrbitCoupling":{"type":"boolean"}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Dispersion correction mixin","type":"object","properties":{"dispersionCorrection":{"enum":["dft-d2","dft-d3","xdm","ts"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Spin-polarization mixin","type":"object","properties":{"spinPolarization":{"enum":["collinear","non-collinear"]}},"additionalProperties":true},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard model mixin","type":"object","properties":{"hubbardType":{"enum":["u"]}}}],"description":"Model parameters defined in-place or via model mixins","additionalProperties":true,"properties":{"functional":{"enum":["scan"]}}},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"models-directory/re","$schema":"http://json-schema.org/draft-07/schema#","title":"model regression","description":"machine learning model type/subtype schema","type":"object","required":["categories","name","parameters"],"properties":{"categories":{"$schema":"http://json-schema.org/draft-07/schema#","title":"regression model category schema","type":"object","description":"Used to categorize entities such as models and methods","properties":{"type":{"enum":["re"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier3":{"enum":["ml"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier2":{"enum":["det"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"tier1":{"enum":["st"],"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]},"subtype":{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry or slug","description":"contains either object with slugified entry or slug only as a string","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"slugified entry","description":"container for machine- and human-readable identifier","type":"object","properties":{"name":{"description":"descriptive human-readable name of entry","type":"string"},"slug":{"description":"machine-readable identifier","type":"string"}},"required":["name","slug"]},{"type":"string"}]}}},"parameters":{"type":"object","description":"Model parameters defined in-place or via model mixins"},"reference":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}},"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"project","$schema":"http://json-schema.org/draft-07/schema#","title":"project schema","type":"object","required":["name"],"properties":{"gid":{"description":"project GID","type":"number"},"clusterBasedChargeRates":{"description":"charge rates info for project","type":"array","items":{"type":"object","properties":{"rate":{"type":"number"},"timestamp":{"type":"number"},"hostname":{"type":"string"}}}},"isExternal":{"type":"boolean","default":false},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$id":"properties-directory/derived-properties","$schema":"http://json-schema.org/draft-07/schema#","title":"derived properties schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}}],"discriminator":{"propertyName":"name"},"required":["name"]}},{"$id":"properties-directory/electronic-configuration","$schema":"http://json-schema.org/draft-07/schema#","title":"electronic configuration schema","type":"object","properties":{"charge":{"description":"total charge of the molecular system","type":"integer"},"multiplicity":{"description":"calculated as 2S+1, with S is the total spin angular momentum","type":"integer"}}},{"$id":"properties-directory/elemental/atomic-radius","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic radius","description":"atomic radius","type":"object","required":["name","value"],"properties":{"name":{"enum":["atomic_radius"]},"units":{"enum":["km","m","cm","mm","um","nm","angstrom","a.u.","bohr","pm"]},"value":{"type":"number"}}},{"$id":"properties-directory/elemental/electronegativity","$schema":"http://json-schema.org/draft-07/schema#","title":"electronegativity","description":"electronegativity for the element (Pauling scale)","type":"object","required":["name","value"],"properties":{"name":{"enum":["electronegativity"]},"value":{"type":"number"}}},{"$id":"properties-directory/elemental/ionization-potential","$schema":"http://json-schema.org/draft-07/schema#","title":"Ionization potential elemental property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["ionization_potential"]},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},"value":{"type":"number"}}},{"$id":"properties-directory/jupyter-notebook-endpoint","$schema":"http://json-schema.org/draft-07/schema#","title":"Jupyter notebook endpoint property schema","type":"object","required":["name","host","port","token"],"properties":{"name":{"enum":["jupyter_notebook_endpoint"]},"host":{"type":"string"},"port":{"type":"number"},"token":{"type":"string"}}},{"$id":"properties-directory/non-scalar/average-potential-profile","$schema":"http://json-schema.org/draft-07/schema#","title":"Average potential profile property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","type":"object","required":["label"],"properties":{"label":{"enum":["z coordinate"],"description":"label of an axis object","type":"string"},"units":{"enum":["km","m","cm","mm","um","nm","angstrom","a.u.","bohr","pm"],"description":"units for an axis","type":"string"}}},"yAxis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","type":"object","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"name":{"enum":["average_potential_profile"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/band-gaps","$schema":"http://json-schema.org/draft-07/schema#","title":"Band gaps property schema","description":"contains band gap values","type":"object","required":["name","values"],"properties":{"name":{"enum":["band_gaps"]},"values":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"band gap schema","type":"object","required":["type","value"],"properties":{"kpointConduction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"kpointValence":{"$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"eigenvalueConduction":{"description":"eigenvalue at k-point in conduction band","type":"number"},"eigenvalueValence":{"description":"eigenvalue at k-point in valence band","type":"number"},"spin":{"type":"number"},"type":{"type":"string","enum":["direct","indirect"]},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},"value":{"type":"number"}}}},"eigenvalues":{"type":"array","items":{"type":"object","properties":{"kpoint":{"$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"weight":{"type":"number"},"eigenvalues":{"type":"array","items":{"type":"object","properties":{"spin":{"type":"number"},"energies":{"type":"array"},"occupations":{"type":"array"}}}}}}}}},{"$id":"properties-directory/non-scalar/band-structure","$schema":"http://json-schema.org/draft-07/schema#","title":"Band structure property schema","type":"object","required":["name","spin","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["kpoints"],"description":"label of an axis object","type":"string"},"units":{"enum":["crystal","cartesian"],"default":"crystal","description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"name":{"enum":["band_structure"]},"spin":{"description":"spin of each band","type":"array","items":{"type":"number","enum":[0.5,-0.5]}},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/charge-density-profile","$schema":"http://json-schema.org/draft-07/schema#","title":"Charge density profile property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["z coordinate"],"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["charge density"],"description":"label of an axis object","type":"string"},"units":{"enum":["e/A"],"description":"units for an axis","type":"string"}}},"name":{"enum":["charge_density_profile"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/density-of-states","$schema":"http://json-schema.org/draft-07/schema#","title":"Density of states property schema","type":"object","required":["legend","name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["density of states"],"description":"label of an axis object","type":"string"},"units":{"enum":["states/unitcell"],"description":"units for an axis","type":"string"}}},"name":{"enum":["density_of_states"]},"legend":{"type":"array","items":{"type":"object","properties":{"element":{"description":"chemical element","type":"string"},"index":{"description":"index inside sub-array of atoms of the same element type","type":"integer"},"electronicState":{"description":"electronic character and shell of PDOS, such as `1s` or `s`, or `total`","type":"string","pattern":"^([1-5]{1})?(s|p|d|f|g).*$"},"spin":{"description":"spin of the electronic state","type":"number","enum":[0.5,-0.5]}}}},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/dielectric-tensor","$schema":"http://json-schema.org/draft-07/schema#","title":"dielectric tensor property schema","description":"The real and imaginary parts of the diagonal elements of the dieletric tensor","type":"object","required":["name","values"],"properties":{"name":{"enum":["dielectric_tensor"]},"values":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Dielectric Tensor","type":"object","required":["part","frequencies","components"],"description":"Schema for a function of frequency yielding a nx3 matrix","properties":{"part":{"description":"Real or imaginary part of the dielectric tensor component","type":"string","enum":["real","imaginary"]},"spin":{"type":"number"},"frequencies":{"description":"Frequencies","type":"array","items":{"type":"number"}},"components":{"description":"Matrix with 3 columns, e.g. x, y, z","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}}}}},{"$id":"properties-directory/non-scalar/file-content","$schema":"http://json-schema.org/draft-07/schema#","title":"File content property schema","type":"object","required":["name","filetype","objectData"],"properties":{"name":{"enum":["file_content"]},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string","enum":["image","text","csv"],"$comment":"isGenerative:true"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"}}},{"$id":"properties-directory/non-scalar/final-structure","$schema":"http://json-schema.org/draft-07/schema#","title":"Final structure property schema","type":"object","required":["name","isRelaxed","materialId"],"properties":{"name":{"enum":["final_structure"]},"isRelaxed":{"type":"boolean"},"materialId":{"description":"Material's identity","type":"string"}}},{"$id":"properties-directory/non-scalar/hubbard-u","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard U parameters property schema","description":"Hubbard U values in eV corresponding to atomic species, orbital and site number.","type":"object","required":["name","values","units"],"properties":{"name":{"enum":["hubbard_u"]},"units":{"enum":["eV"]},"values":{"type":"array","items":{"type":"object","required":["id","atomicSpecies","orbitalName","value"],"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}}}}},{"$id":"properties-directory/non-scalar/hubbard-v","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard V parameters property schema","description":"Hubbard V values corresponding to atomic pairs","type":"object","required":["name","units","values"],"properties":{"name":{"enum":["hubbard_v"]},"units":{"enum":["eV"]},"values":{"type":"array","items":{"type":"object","required":["id","id2","atomicSpecies","atomicSpecies2","value"],"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital pair numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"id2":{"type":"integer","description":"Site number or index in the lattice of second site"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"atomicSpecies2":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co2, O"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalName2":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"distance":{"type":"number","description":"Distance between two sites in Bohr."},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}}}}},{"$id":"properties-directory/non-scalar/hubbard-v-nn","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard V NN parameters property schema","description":"Hubbard V value in eV for nearest neighbors used in hp.x output parsing","type":"object","required":["name","units","values"],"properties":{"name":{"enum":["hubbard_v_nn"]},"units":{"enum":["eV"]},"values":{"type":"array","items":{"type":"object","required":["id","id2","atomicSpecies","atomicSpecies2","value"],"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital pair numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"id2":{"type":"integer","description":"Site number or index in the lattice of second site"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"atomicSpecies2":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co2, O"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalName2":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"distance":{"type":"number","description":"Distance between two sites in Bohr."},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}}}}},{"$id":"properties-directory/non-scalar/is-relaxed","$schema":"http://json-schema.org/draft-07/schema#","title":"Is relaxed property schema","type":"object","required":["name","value","materialId"],"properties":{"name":{"enum":["is_relaxed"]},"value":{"type":"boolean"},"materialId":{"description":"Material's identity","type":"string"}}},{"$id":"properties-directory/non-scalar/phonon-dispersions","$schema":"http://json-schema.org/draft-07/schema#","title":"Phonon band structure property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["qpoints"],"description":"label of an axis object","type":"string"},"units":{"enum":["crystal","cartesian"],"default":"crystal","description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["frequency"],"description":"label of an axis object","type":"string"},"units":{"enum":["cm-1","THz","meV"],"description":"units for an axis","type":"string"}}},"name":{"enum":["phonon_dispersions"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/phonon-dos","$schema":"http://json-schema.org/draft-07/schema#","title":"Phonon density of states property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["frequency"],"description":"label of an axis object","type":"string"},"units":{"enum":["cm-1","THz","meV"],"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["Phonon DOS"],"description":"label of an axis object","type":"string"},"units":{"enum":["states/cm-1","states/THz","states/meV"],"description":"units for an axis","type":"string"}}},"name":{"enum":["phonon_dos"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/potential-profile","$schema":"http://json-schema.org/draft-07/schema#","title":"Potential profile property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["z coordinate"],"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"name":{"enum":["potential_profile"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/reaction-energy-profile","$schema":"http://json-schema.org/draft-07/schema#","title":"Reaction energy profile property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["reaction coordinate"],"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"name":{"enum":["reaction_energy_profile"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/stress-tensor","$schema":"http://json-schema.org/draft-07/schema#","title":"Stress tensor property schema","type":"object","required":["name","value","units"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"name":{"enum":["stress_tensor"]},"units":{"enum":["kbar","pa"]}}},{"$id":"properties-directory/non-scalar/total-energy-contributions","$schema":"http://json-schema.org/draft-07/schema#","title":"Total energy contributions property schema","type":"object","required":["name"],"properties":{"temperatureEntropy":{"description":"product of temperature and configurational entropy","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["temperature_entropy"]},"value":{"type":"number"}}},"harris_foulkes":{"description":"non self-consitent energy based on an input charge density","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["harris_foulkes"]},"value":{"type":"number"}}},"smearing":{"description":"smearing energy","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["smearing"]},"value":{"type":"number"}}},"one_electron":{"description":"kinetic + pseudopotential energy","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["one_electron"]},"value":{"type":"number"}}},"hartree":{"description":"energy due to coulomb potential","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["hartree"]},"value":{"type":"number"}}},"exchange":{"description":"exchange energy","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["exchange"]},"value":{"type":"number"}}},"exchange_correlation":{"description":"exchange and correlation energy per particle","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["exchange_correlation"]},"value":{"type":"number"}}},"ewald":{"description":"summation of interaction energies at long length scales due to coloumbic interactions","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["ewald"]},"value":{"type":"number"}}},"alphaZ":{"description":"divergent electrostatic ion interaction in compensating electron gas","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["alphaZ"]},"value":{"type":"number"}}},"atomicEnergy":{"description":"kinetic energy of wavefunctions in the atomic limit","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["atomic_energy"]},"value":{"type":"number"}}},"eigenvalues":{"description":"sum of one electron energies of kinetic, electrostatic, and exchange correlation","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["eigenvalues"]},"value":{"type":"number"}}},"PAWDoubleCounting2":{"description":"double counting correction 2","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["PAW_double-counting_correction_2"]},"value":{"type":"number"}}},"PAWDoubleCounting3":{"description":"double counting correction 3","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["PAW_double-counting_correction_3"]},"value":{"type":"number"}}},"hartreeFock":{"description":"hartree-fock contribution","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["hartree_fock"]},"value":{"type":"number"}}},"name":{"enum":["total_energy_contributions"]},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]}}},{"$id":"properties-directory/non-scalar/vibrational-spectrum","$schema":"http://json-schema.org/draft-07/schema#","title":"Vibrational spectrum property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["frequency","wavenumber"],"description":"label of an axis object","type":"string"},"units":{"enum":["cm-1","THz","meV"],"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["Intensity","Absorbance","Absorption coefficient"],"description":"label of an axis object","type":"string"},"units":{"enum":["(debye/angstrom)^2","km/mol","m/mol","a.u."],"description":"units for an axis","type":"string"}}},"name":{"enum":["vibrational_spectrum"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$id":"properties-directory/non-scalar/workflow","$schema":"http://json-schema.org/draft-07/schema#","title":"Workflow property schema","type":"object","required":["name","subworkflows","units"],"properties":{"name":{"enum":["workflow:pyml_predict"],"description":"entity name","type":"string"},"subworkflows":{"description":"Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Subworkflow Schema","type":"object","required":["application","model","name","units"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"properties":{"description":"Array of characteristic properties calculated by this subworkflow","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","type":"string"}},"compute":{"$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}},"units":{"description":"Contains the Units of the subworkflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow subworkflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","source","subtype","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"io"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database ids input/output schema","type":"object","properties":{"type":{"const":"db_ids"},"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["type","ids"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database collection input/output schema","type":"object","properties":{"type":{"const":"db_collection"},"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["type","collection","draft"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["type","objectData"],"properties":{"type":{"const":"object_storage"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}],"discriminator":{"propertyName":"type"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"reduce"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","monitors","name","postProcessors","preProcessors","results","statement","then","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"condition"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","statement","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assertion"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"execution"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},"input":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}}},"context":{"type":"array","items":{"type":"object","required":["name","isEdited","data"],"properties":{"name":{"type":"string","tsType":"ContextProviderNameEnum"},"isEdited":{"type":"boolean"},"data":{"type":"object"},"extraData":{"type":"object"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","monitors","name","operand","postProcessors","preProcessors","results","type","value"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assignment"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"scope":{"type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","monitors","name","operation","operationType","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"processing"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"model":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base model","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"isDraft":{"description":"Defines whether to store the results/properties extracted in this unit to properties collection","type":"boolean","default":false}}}},"units":{"description":"Contains the Units of the Workflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","source","subtype","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"io"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database ids input/output schema","type":"object","properties":{"type":{"const":"db_ids"},"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["type","ids"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database collection input/output schema","type":"object","properties":{"type":{"const":"db_collection"},"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["type","collection","draft"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["type","objectData"],"properties":{"type":{"const":"object_storage"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}],"discriminator":{"propertyName":"type"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"reduce"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","monitors","name","postProcessors","preProcessors","results","statement","then","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"condition"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","statement","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assertion"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"execution"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},"input":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}}},"context":{"type":"array","items":{"type":"object","required":["name","isEdited","data"],"properties":{"name":{"type":"string","tsType":"ContextProviderNameEnum"},"isEdited":{"type":"boolean"},"data":{"type":"object"},"extraData":{"type":"object"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","monitors","name","operand","postProcessors","preProcessors","results","type","value"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assignment"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"scope":{"type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","monitors","name","operation","operationType","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"processing"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"map unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","type","workflowId"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"map"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"workflowId":{"description":"Id of workflow to run inside map","type":"string"},"input":{"description":"Input information for map.","type":"object","required":["target"],"properties":{"target":{"description":"Name of the target variable to substitute using the values below. e.g. K_POINTS","type":"string"},"scope":{"description":"Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.","type":"string"},"name":{"description":"Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.","type":"string"},"values":{"description":"Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution","type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"object"}]}},"useValues":{"type":"boolean"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"subworkflow unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"subworkflow"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"properties":{"description":"Array of characteristic properties calculated by this workflow (TODO: add enums)","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","oneOf":[{"type":"string"},{"type":"object"}]}},"isUsingDataset":{"description":"Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab.","type":"boolean"},"workflows":{"description":"Array of workflows with the same schema as the current one.","type":"array","items":{"type":"object"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$id":"properties-directory/reusable/hubbard-parameters","$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard parameters reusable schema","description":"Common properties for hubbard parameter schemas","type":"object","required":["values","units"],"properties":{"units":{"enum":["eV"]},"values":{"type":"array","items":{"type":"object","required":["id","id2","atomicSpecies","atomicSpecies2","value"],"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital pair numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"id2":{"type":"integer","description":"Site number or index in the lattice of second site"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"atomicSpecies2":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co2, O"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalName2":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"distance":{"type":"number","description":"Distance between two sites in Bohr."},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}}}}},{"$id":"properties-directory/scalar/electron-affinity","$schema":"http://json-schema.org/draft-07/schema#","title":"Electron affinity property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["electron_affinity"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/fermi-energy","$schema":"http://json-schema.org/draft-07/schema#","title":"Fermi energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["fermi_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/formation-energy","$schema":"http://json-schema.org/draft-07/schema#","title":"Formation energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["formation_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/ionization-potential","$schema":"http://json-schema.org/draft-07/schema#","title":"Ionization potential scalar property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["ionization_potential"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/pressure","$schema":"http://json-schema.org/draft-07/schema#","title":"Pressure property schema","description":"average pressure in unit cell","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["pressure"]},"units":{"enum":["kbar","pa"]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/reaction-energy-barrier","$schema":"http://json-schema.org/draft-07/schema#","title":"Reaction energy barrier property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["reaction_energy_barrier"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/surface-energy","$schema":"http://json-schema.org/draft-07/schema#","title":"Surface energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["surface_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/total-energy","$schema":"http://json-schema.org/draft-07/schema#","title":"Total energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["total_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/total-force","$schema":"http://json-schema.org/draft-07/schema#","title":"Total forces property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["total_force"]},"units":{"enum":["eV/bohr","eV/angstrom","Ry/a.u.","newton","kg*m/s^2","eV/a.u."]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/valence-band-offset","$schema":"http://json-schema.org/draft-07/schema#","title":"Valence band offset property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["valence_band_offset"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/scalar/zero-point-energy","$schema":"http://json-schema.org/draft-07/schema#","title":"Zero point energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["zero_point_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$id":"properties-directory/structural/atomic-forces","$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic forces property schema","description":"coordinates of atoms by ids, vector, unitless","type":"object","required":["name","units","values"],"properties":{"name":{"enum":["atomic_forces"]},"values":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vectors schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vector schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"enum":["eV/bohr","eV/angstrom","Ry/a.u.","newton","kg*m/s^2","eV/a.u."]}}},{"$id":"properties-directory/structural/basis/atomic-constraint","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraint schema","description":"constraint of atoms by ids, used to constraint the position etc.","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector boolean 3d schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 boolean elements schema","type":"array","items":{"type":"boolean"},"minItems":3,"maxItems":3}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}},{"$id":"properties-directory/structural/basis/atomic-constraints","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraints schema","description":"atomic constraints schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraint schema","description":"constraint of atoms by ids, used to constraint the position etc.","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector boolean 3d schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 boolean elements schema","type":"array","items":{"type":"boolean"},"minItems":3,"maxItems":3}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}},{"$id":"properties-directory/structural/basis/atomic-constraints-property","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraints property schema","description":"atomic constraints property schema (as stored in a database)","type":"object","required":["name","values"],"properties":{"name":{"enum":["atomic_constraints"]},"values":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraints schema","description":"atomic constraints schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraint schema","description":"constraint of atoms by ids, used to constraint the position etc.","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector boolean 3d schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 boolean elements schema","type":"array","items":{"type":"boolean"},"minItems":3,"maxItems":3}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"properties-directory/structural/basis/atomic-coordinate","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}},{"$id":"properties-directory/structural/basis/atomic-coordinates","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},{"$id":"properties-directory/structural/basis/atomic-element","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}},{"$id":"properties-directory/structural/basis/atomic-elements","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},{"$id":"properties-directory/structural/basis/atomic-label","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}},{"$id":"properties-directory/structural/basis/atomic-labels","$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}},{"$id":"properties-directory/structural/basis/bonds","$schema":"http://json-schema.org/draft-07/schema#","title":"bonds schema","type":"array","uniqueItems":true,"items":{"type":"object","properties":{"atomPair":{"description":"indices of the two connected atoms","type":"array","minItems":2,"maxItems":2,"$schema":"http://json-schema.org/draft-07/schema#","title":"array of ids","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","type":"object","required":["id"],"properties":{"id":{"description":"integer id of this entry","type":"integer"}}}},"bondType":{"type":"string","enum":["single","double","triple","quadruple","aromatic","tautomeric","dative","other"]}}}},{"$id":"properties-directory/structural/basis/boundary-conditions","$schema":"http://json-schema.org/draft-07/schema#","title":"boundary conditions property schema","description":"boundary conditions property schema (as stored in a database)","type":"object","required":["name","type","offset"],"properties":{"name":{"enum":["boundary_conditions"]},"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}}},{"$id":"properties-directory/structural/basis/units-enum","$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},{"$id":"properties-directory/structural/basis","$schema":"http://json-schema.org/draft-07/schema#","title":"basis schema","type":"object","required":["elements","coordinates"],"properties":{"elements":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic elements schema","description":"atomic elements schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic element schema","description":"chemical element of an atom according to the periodic table","type":"object","required":["id","value"],"properties":{"value":{"description":"All elements, including extra elements","anyOf":[{"enum":["H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"]},{"description":"Extra elements, used for convenience purposed","enum":["X","Vac"]}],"type":"string"},"id":{"description":"integer id of this entry","type":"integer"}}}},"coordinates":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinates schema","description":"atomic coordinates schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic coordinate schema","description":"coordinate of an atom","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"coordinate 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"basis units enum","enum":["crystal","cartesian"],"default":"crystal"},"labels":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic labels schema","description":"atomic labels schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic label schema","description":"Optional label (e.g., 1, 2, as in Fe1, Fe2) to distinguish species, e.g. to have magnetic moment.","type":"object","required":["id","value"],"properties":{"value":{"anyOf":[{"type":["integer","string","number"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"integer positive single digit","type":"integer","minimum":1,"maximum":9}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"properties-directory/structural/density","$schema":"http://json-schema.org/draft-07/schema#","title":"density schema","type":"object","required":["value"],"properties":{"name":{"enum":["density"]},"units":{"enum":["g/cm^3"]},"value":{"type":"number"}}},{"$id":"properties-directory/structural/elemental-ratio","$schema":"http://json-schema.org/draft-07/schema#","title":"elemental-ratio","description":"ration of this element in the compound","type":"object","required":["value"],"properties":{"name":{"enum":["elemental_ratio"]},"value":{"type":"number","minimum":0,"maximum":1},"element":{"type":"string","description":"the element this ratio is for"}}},{"$id":"properties-directory/structural/inchi","$schema":"http://json-schema.org/draft-07/schema#","title":"InChI representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi"]},"value":{"type":"string"}}},{"$id":"properties-directory/structural/inchi-key","$schema":"http://json-schema.org/draft-07/schema#","title":"InChI key representation schema","type":"object","required":["value"],"properties":{"name":{"enum":["inchi_key"]},"value":{"type":"string"}}},{"$id":"properties-directory/structural/lattice/type-enum","$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},{"$id":"properties-directory/structural/lattice/type-extended-enum","$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type extended enum","type":"string","enum":["BCC","BCT-1","BCT-2","CUB","FCC","HEX","MCL","MCLC-1","MCLC-2","MCLC-3","MCLC-4","MCLC-5","ORC","ORCC","ORCF-1","ORCF-2","ORCF-3","ORCI","RHL-1","RHL-2","TET","TRI_1a","TRI_1b","TRI_2a","TRI_2b"]},{"$id":"properties-directory/structural/lattice/units/angle-enum","$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"},{"$id":"properties-directory/structural/lattice/units/length-enum","$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},{"$id":"properties-directory/structural/lattice/units","$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}},{"$id":"properties-directory/structural/lattice/vectors/units-enum","$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"},{"$id":"properties-directory/structural/lattice/vectors","$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},{"$id":"properties-directory/structural/lattice","$schema":"http://json-schema.org/draft-07/schema#","title":"lattice schema","type":"object","required":["a","b","c","alpha","beta","gamma"],"properties":{"a":{"description":"length of the first lattice vector","type":"number"},"b":{"description":"length of the second lattice vector","type":"number"},"c":{"description":"length of the third lattice vector","type":"number"},"alpha":{"description":"angle between first and second lattice vector","type":"number"},"beta":{"description":"angle between second and third lattice vector","type":"number"},"gamma":{"description":"angle between first and third lattice vector","type":"number"},"vectors":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors schema","type":"object","required":["a","b","c"],"properties":{"a":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"b":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"c":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"alat":{"description":"lattice parameter for fractional coordinates","type":"number","default":1},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice vectors units enum","enum":["angstrom","bohr"],"default":"angstrom"}}},"type":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice type enum","type":"string","enum":["CUB","BCC","FCC","TET","MCL","ORC","ORCC","ORCF","ORCI","HEX","BCT","TRI","MCLC","RHL"],"default":"TRI"},"units":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Lattice units schema","type":"object","default":{"length":"angstrom","angle":"degree"},"properties":{"length":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units length enum","enum":["angstrom","bohr"],"default":"angstrom"},"angle":{"$schema":"http://json-schema.org/draft-07/schema#","title":"lattice units angle enum","enum":["degree","radian"],"default":"degree"}}}}},{"$id":"properties-directory/structural/magnetic-moments","$schema":"http://json-schema.org/draft-07/schema#","title":"Magnetic moments property schema","description":"magnetization on each ion","type":"object","required":["name","values","units"],"properties":{"name":{"enum":["magnetic_moments"]},"values":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vectors schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vector schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"enum":["uB"]}}},{"$id":"properties-directory/structural/molecular-pattern","$schema":"http://json-schema.org/draft-07/schema#","title":"molecular pattern schema","type":"array","items":{"anyOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"functional group pattern schema","type":"object","properties":{"name":{"enum":["functional_group"]},"atoms":{"type":"array","$schema":"http://json-schema.org/draft-07/schema#","title":"array of ids","description":"array of objects containing integer id each","items":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","required":["id"],"properties":{"isConnector":{"description":"whether atom connects to atoms outside of functional group.","type":"boolean"},"id":{"description":"integer id of this entry","type":"integer"}}}},"SMARTS":{"description":"SMARTS string for classification of FG; https://en.wikipedia.org/wiki/SMILES_arbitrary_target_specification","type":"string"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"ring pattern schema","type":"object","properties":{"name":{"enum":["ring"]},"atoms":{"type":"array","$schema":"http://json-schema.org/draft-07/schema#","title":"array of ids","description":"array of objects containing integer id each","items":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","required":["id"],"properties":{"isConnector":{"description":"whether atom connects to atoms outside of functional group.","type":"boolean"},"id":{"description":"integer id of this entry","type":"integer"}}}},"isAromatic":{"type":"boolean"}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"special bond pattern schema","type":"object","description":"Any bonding interaction that cannot be described by simple 2-atom picture, e.g. 3-center-2-electron bond in diborane","properties":{"name":{"enum":["special_bond"]},"atoms":{"type":"array","$schema":"http://json-schema.org/draft-07/schema#","title":"array of ids","description":"array of objects containing integer id each","items":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","required":["id"],"properties":{"isConnector":{"description":"whether atom connects to atoms outside of functional group.","type":"boolean"},"id":{"description":"integer id of this entry","type":"integer"}}}}},"required":["name"]}]}},{"$id":"properties-directory/structural/p-norm","$schema":"http://json-schema.org/draft-07/schema#","title":"p_norm","description":"https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm","type":"object","required":["value"],"properties":{"name":{"enum":["p-norm"]},"degree":{"type":"integer","description":"degree of the dimensionality of the norm"},"value":{"type":"number"}}},{"$id":"properties-directory/structural/patterns/functional-group","$schema":"http://json-schema.org/draft-07/schema#","title":"functional group pattern schema","type":"object","required":["name"],"properties":{"name":{"enum":["functional_group"]},"atoms":{"type":"array","$schema":"http://json-schema.org/draft-07/schema#","title":"array of ids","description":"array of objects containing integer id each","items":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","required":["id"],"properties":{"isConnector":{"description":"whether atom connects to atoms outside of functional group.","type":"boolean"},"id":{"description":"integer id of this entry","type":"integer"}}}},"SMARTS":{"description":"SMARTS string for classification of FG; https://en.wikipedia.org/wiki/SMILES_arbitrary_target_specification","type":"string"}}},{"$id":"properties-directory/structural/patterns/ring","$schema":"http://json-schema.org/draft-07/schema#","title":"ring pattern schema","type":"object","required":["name"],"properties":{"name":{"enum":["ring"]},"atoms":{"type":"array","$schema":"http://json-schema.org/draft-07/schema#","title":"array of ids","description":"array of objects containing integer id each","items":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","required":["id"],"properties":{"isConnector":{"description":"whether atom connects to atoms outside of functional group.","type":"boolean"},"id":{"description":"integer id of this entry","type":"integer"}}}},"isAromatic":{"type":"boolean"}}},{"$id":"properties-directory/structural/patterns/special-bond","$schema":"http://json-schema.org/draft-07/schema#","title":"special bond pattern schema","type":"object","description":"Any bonding interaction that cannot be described by simple 2-atom picture, e.g. 3-center-2-electron bond in diborane","required":["name"],"properties":{"name":{"enum":["special_bond"]},"atoms":{"type":"array","$schema":"http://json-schema.org/draft-07/schema#","title":"array of ids","description":"array of objects containing integer id each","items":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"object with id","description":"object containing integer id","required":["id"],"properties":{"isConnector":{"description":"whether atom connects to atoms outside of functional group.","type":"boolean"},"id":{"description":"integer id of this entry","type":"integer"}}}}}},{"$id":"properties-directory/structural/symmetry","$schema":"http://json-schema.org/draft-07/schema#","title":"symmetry schema","type":"object","properties":{"pointGroupSymbol":{"description":"point group symbol in Schoenflies notation","type":"string"},"spaceGroupSymbol":{"description":"space group symbol in Hermann–Mauguin notation","type":"string"},"tolerance":{"type":"object","description":"tolerance used for symmetry calculation","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"units":{"enum":["angstrom"]},"value":{"type":"number"}}},"name":{"enum":["symmetry"]}}},{"$id":"properties-directory/structural/volume","$schema":"http://json-schema.org/draft-07/schema#","title":"volume schema","type":"object","required":["value"],"properties":{"name":{"enum":["volume"]},"units":{"enum":["angstrom^3"]},"value":{"type":"number"}}},{"$id":"properties-directory/workflow/convergence/electronic","$schema":"http://json-schema.org/draft-07/schema#","title":"Convergence electronic property schema","type":"object","required":["data","name","units"],"properties":{"name":{"enum":["convergence_electronic"]},"units":{"enum":["eV","Ry","hartree"]},"data":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}},{"$id":"properties-directory/workflow/convergence/ionic","$schema":"http://json-schema.org/draft-07/schema#","title":"Convergence ionic property schema","type":"object","required":["data","name","units"],"properties":{"name":{"enum":["convergence_ionic"]},"tolerance":{"description":"for ionic convergence tolerance shows force tolerance"},"units":{"description":"units for force tolerance","enum":["eV"]},"data":{"type":"array","description":"energetic and structural information","items":{"type":"object","required":["energy"],"properties":{"energy":{"description":"converged electronic energy for this structure (last in `electronic`)","type":"number"},"structure":{"description":"TODO: structural information at each step to be here","type":"object"},"electronic":{"description":"data about electronic at this ionic step","type":"object","properties":{"units":{"description":"units for force tolerance","enum":["eV","Ry","hartree"]},"data":{"type":"array","items":{"type":"number"}}}}}}}}},{"$id":"properties-directory/workflow/convergence/kpoint","$schema":"http://json-schema.org/draft-07/schema#","title":"convergence schema for converging a property wrt kpoints","type":"object","required":["tolerance","units","data"],"properties":{"tolerance":{"description":"tolerance for the property under investigation"},"units":{"description":"units for the property under investigation","type":"string"},"property":{"description":"name of the property under investigation","type":"string"},"data":{"type":"array","description":"kpoint grid and property information","items":{"type":"object","required":["value","grid"],"properties":{"value":{"description":"value of the property at this step"},"grid":{"description":"information about the kpoint grid","type":"object"},"spacing":{"description":"optional kpoint spacing information","type":"number"}}}}}},{"$id":"property/holder","$schema":"http://json-schema.org/draft-07/schema#","title":"Property holder schema","type":"object","required":["data","source","repetition","exabyteId"],"properties":{"group":{"description":"property group, e.g. qe:dft:gga:pbe","type":"string"},"data":{"description":"container of the information, specific to each property","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"Valence band offset property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["valence_band_offset"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Zero point energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["zero_point_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Pressure property schema","description":"average pressure in unit cell","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["pressure"]},"units":{"enum":["kbar","pa"]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reaction energy barrier property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["reaction_energy_barrier"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Surface energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["surface_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Total energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["total_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Total forces property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["total_force"]},"units":{"enum":["eV/bohr","eV/angstrom","Ry/a.u.","newton","kg*m/s^2","eV/a.u."]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Fermi energy property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["fermi_energy"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Ionization potential scalar property schema","type":"object","required":["name","units","value"],"properties":{"name":{"enum":["ionization_potential"],"type":"string"},"units":{"oneOf":[{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},{"enum":["eV/A^2"]}]},"value":{"type":"number"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Stress tensor property schema","type":"object","properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"matrix 3x3 schema","type":"array","minItems":3,"maxItems":3,"items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"name":{"enum":["stress_tensor"]},"units":{"enum":["kbar","pa"]}},"required":["name","value","units"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Band gaps property schema","description":"contains band gap values","type":"object","properties":{"name":{"enum":["band_gaps"]},"values":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"band gap schema","type":"object","required":["type","value"],"properties":{"kpointConduction":{"$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"kpointValence":{"$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"eigenvalueConduction":{"description":"eigenvalue at k-point in conduction band","type":"number"},"eigenvalueValence":{"description":"eigenvalue at k-point in valence band","type":"number"},"spin":{"type":"number"},"type":{"type":"string","enum":["direct","indirect"]},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]},"value":{"type":"number"}}}},"eigenvalues":{"type":"array","items":{"type":"object","properties":{"kpoint":{"$schema":"http://json-schema.org/draft-07/schema#","title":"kpoint schema","description":"A k-point is a point in reciprocal space of a crystal.","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"weight":{"type":"number"},"eigenvalues":{"type":"array","items":{"type":"object","properties":{"spin":{"type":"number"},"energies":{"type":"array"},"occupations":{"type":"array"}}}}}}}},"required":["name","values"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Band structure property schema","type":"object","required":["name","spin","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["kpoints"],"description":"label of an axis object","type":"string"},"units":{"enum":["crystal","cartesian"],"default":"crystal","description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"name":{"enum":["band_structure"]},"spin":{"description":"spin of each band","type":"array","items":{"type":"number","enum":[0.5,-0.5]}},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Phonon band structure property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["qpoints"],"description":"label of an axis object","type":"string"},"units":{"enum":["crystal","cartesian"],"default":"crystal","description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["frequency"],"description":"label of an axis object","type":"string"},"units":{"enum":["cm-1","THz","meV"],"description":"units for an axis","type":"string"}}},"name":{"enum":["phonon_dispersions"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Total energy contributions property schema","type":"object","properties":{"temperatureEntropy":{"description":"product of temperature and configurational entropy","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["temperature_entropy"]},"value":{"type":"number"}}},"harris_foulkes":{"description":"non self-consitent energy based on an input charge density","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["harris_foulkes"]},"value":{"type":"number"}}},"smearing":{"description":"smearing energy","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["smearing"]},"value":{"type":"number"}}},"one_electron":{"description":"kinetic + pseudopotential energy","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["one_electron"]},"value":{"type":"number"}}},"hartree":{"description":"energy due to coulomb potential","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["hartree"]},"value":{"type":"number"}}},"exchange":{"description":"exchange energy","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["exchange"]},"value":{"type":"number"}}},"exchange_correlation":{"description":"exchange and correlation energy per particle","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["exchange_correlation"]},"value":{"type":"number"}}},"ewald":{"description":"summation of interaction energies at long length scales due to coloumbic interactions","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["ewald"]},"value":{"type":"number"}}},"alphaZ":{"description":"divergent electrostatic ion interaction in compensating electron gas","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["alphaZ"]},"value":{"type":"number"}}},"atomicEnergy":{"description":"kinetic energy of wavefunctions in the atomic limit","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["atomic_energy"]},"value":{"type":"number"}}},"eigenvalues":{"description":"sum of one electron energies of kinetic, electrostatic, and exchange correlation","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["eigenvalues"]},"value":{"type":"number"}}},"PAWDoubleCounting2":{"description":"double counting correction 2","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["PAW_double-counting_correction_2"]},"value":{"type":"number"}}},"PAWDoubleCounting3":{"description":"double counting correction 3","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["PAW_double-counting_correction_3"]},"value":{"type":"number"}}},"hartreeFock":{"description":"hartree-fock contribution","type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"scalar schema","required":["value"],"properties":{"name":{"enum":["hartree_fock"]},"value":{"type":"number"}}},"name":{"enum":["total_energy_contributions"]},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"]}},"required":["name"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Phonon density of states property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["frequency"],"description":"label of an axis object","type":"string"},"units":{"enum":["cm-1","THz","meV"],"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["Phonon DOS"],"description":"label of an axis object","type":"string"},"units":{"enum":["states/cm-1","states/THz","states/meV"],"description":"units for an axis","type":"string"}}},"name":{"enum":["phonon_dos"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Potential profile property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["z coordinate"],"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"name":{"enum":["potential_profile"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reaction energy profile property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["reaction coordinate"],"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"name":{"enum":["reaction_energy_profile"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Density of states property schema","type":"object","required":["legend","name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["density of states"],"description":"label of an axis object","type":"string"},"units":{"enum":["states/unitcell"],"description":"units for an axis","type":"string"}}},"name":{"enum":["density_of_states"]},"legend":{"type":"array","items":{"type":"object","properties":{"element":{"description":"chemical element","type":"string"},"index":{"description":"index inside sub-array of atoms of the same element type","type":"integer"},"electronicState":{"description":"electronic character and shell of PDOS, such as `1s` or `s`, or `total`","type":"string","pattern":"^([1-5]{1})?(s|p|d|f|g).*$"},"spin":{"description":"spin of the electronic state","type":"number","enum":[0.5,-0.5]}}}},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"dielectric tensor property schema","description":"The real and imaginary parts of the diagonal elements of the dieletric tensor","type":"object","properties":{"name":{"enum":["dielectric_tensor"]},"values":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Dielectric Tensor","type":"object","required":["part","frequencies","components"],"description":"Schema for a function of frequency yielding a nx3 matrix","properties":{"part":{"description":"Real or imaginary part of the dielectric tensor component","type":"string","enum":["real","imaginary"]},"spin":{"type":"number"},"frequencies":{"description":"Frequencies","type":"array","items":{"type":"number"}},"components":{"description":"Matrix with 3 columns, e.g. x, y, z","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 number elements schema","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}}}}}},"required":["name","values"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"File content property schema","type":"object","required":["name","filetype","objectData"],"properties":{"name":{"enum":["file_content"]},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string","enum":["image","text","csv"],"$comment":"isGenerative:true"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard U parameters property schema","description":"Hubbard U values in eV corresponding to atomic species, orbital and site number.","type":"object","properties":{"name":{"enum":["hubbard_u"]},"units":{"enum":["eV"]},"values":{"type":"array","items":{"type":"object","required":["id","atomicSpecies","orbitalName","value"],"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}}}},"required":["name","values","units"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard V parameters property schema","description":"Hubbard V values corresponding to atomic pairs","type":"object","required":["name","units","values"],"properties":{"name":{"enum":["hubbard_v"]},"units":{"enum":["eV"]},"values":{"type":"array","items":{"type":"object","required":["id","id2","atomicSpecies","atomicSpecies2","value"],"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital pair numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"id2":{"type":"integer","description":"Site number or index in the lattice of second site"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"atomicSpecies2":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co2, O"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalName2":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"distance":{"type":"number","description":"Distance between two sites in Bohr."},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Hubbard V NN parameters property schema","description":"Hubbard V value in eV for nearest neighbors used in hp.x output parsing","type":"object","required":["name","units","values"],"properties":{"name":{"enum":["hubbard_v_nn"]},"units":{"enum":["eV"]},"values":{"type":"array","items":{"type":"object","required":["id","id2","atomicSpecies","atomicSpecies2","value"],"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic data per orbital pair numeric","description":"Atomic properties per orbital pair with numeric value e.g., Hubbard V parameters.","properties":{"id":{"type":"integer","description":"Site number or index in the lattice"},"id2":{"type":"integer","description":"Site number or index in the lattice of second site"},"atomicSpecies":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co1, Mn"},"atomicSpecies2":{"type":"string","pattern":"^[a-zA-Z]{1,2}[\\d+]?$","description":"Example: Co2, O"},"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalName2":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"distance":{"type":"number","description":"Distance between two sites in Bohr."},"value":{"type":"number","description":"Value related to a specific property, e.g., Hubbard U, V etc."}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Average potential profile property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","type":"object","required":["label"],"properties":{"label":{"enum":["z coordinate"],"description":"label of an axis object","type":"string"},"units":{"enum":["km","m","cm","mm","um","nm","angstrom","a.u.","bohr","pm"],"description":"units for an axis","type":"string"}}},"yAxis":{"$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","type":"object","required":["label"],"properties":{"label":{"enum":["energy"],"description":"label of an axis object","type":"string"},"units":{"enum":["kJ/mol","eV","J/mol","hartree","cm-1","Ry","eV/atom"],"description":"units for an axis","type":"string"}}},"name":{"enum":["average_potential_profile"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Charge density profile property schema","type":"object","required":["name","xAxis","xDataArray","yAxis","yDataSeries"],"properties":{"xAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["z coordinate"],"description":"label of an axis object","type":"string"},"units":{"description":"units for an axis","type":"string"}}},"yAxis":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","title":"axis schema","required":["label"],"properties":{"label":{"enum":["charge density"],"description":"label of an axis object","type":"string"},"units":{"enum":["e/A"],"description":"units for an axis","type":"string"}}},"name":{"enum":["charge_density_profile"]},"xDataArray":{"description":"array containing values of x Axis","type":"array","items":{"oneOf":[{"type":"number"},{"type":"array","items":{"type":"number"}}]}},"yDataSeries":{"$schema":"http://json-schema.org/draft-07/schema#","title":"1 dimension data series schema","type":"array","items":{"type":"array","minItems":1,"items":{"type":"number"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Workflow property schema","type":"object","required":["name","subworkflows","units"],"properties":{"name":{"enum":["workflow:pyml_predict"],"description":"entity name","type":"string"},"subworkflows":{"description":"Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Subworkflow Schema","type":"object","required":["application","model","name","units"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"properties":{"description":"Array of characteristic properties calculated by this subworkflow","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","type":"string"}},"compute":{"$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}},"units":{"description":"Contains the Units of the subworkflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow subworkflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","source","subtype","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"io"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database ids input/output schema","type":"object","properties":{"type":{"const":"db_ids"},"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["type","ids"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database collection input/output schema","type":"object","properties":{"type":{"const":"db_collection"},"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["type","collection","draft"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["type","objectData"],"properties":{"type":{"const":"object_storage"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}],"discriminator":{"propertyName":"type"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"reduce"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","monitors","name","postProcessors","preProcessors","results","statement","then","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"condition"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","statement","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assertion"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"execution"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},"input":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}}},"context":{"type":"array","items":{"type":"object","required":["name","isEdited","data"],"properties":{"name":{"type":"string","tsType":"ContextProviderNameEnum"},"isEdited":{"type":"boolean"},"data":{"type":"object"},"extraData":{"type":"object"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","monitors","name","operand","postProcessors","preProcessors","results","type","value"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assignment"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"scope":{"type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","monitors","name","operation","operationType","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"processing"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"model":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base model","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"isDraft":{"description":"Defines whether to store the results/properties extracted in this unit to properties collection","type":"boolean","default":false}}}},"units":{"description":"Contains the Units of the Workflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","source","subtype","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"io"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database ids input/output schema","type":"object","properties":{"type":{"const":"db_ids"},"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["type","ids"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database collection input/output schema","type":"object","properties":{"type":{"const":"db_collection"},"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["type","collection","draft"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["type","objectData"],"properties":{"type":{"const":"object_storage"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}],"discriminator":{"propertyName":"type"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"reduce"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","monitors","name","postProcessors","preProcessors","results","statement","then","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"condition"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","statement","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assertion"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"execution"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},"input":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}}},"context":{"type":"array","items":{"type":"object","required":["name","isEdited","data"],"properties":{"name":{"type":"string","tsType":"ContextProviderNameEnum"},"isEdited":{"type":"boolean"},"data":{"type":"object"},"extraData":{"type":"object"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","monitors","name","operand","postProcessors","preProcessors","results","type","value"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assignment"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"scope":{"type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","monitors","name","operation","operationType","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"processing"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"map unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","type","workflowId"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"map"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"workflowId":{"description":"Id of workflow to run inside map","type":"string"},"input":{"description":"Input information for map.","type":"object","required":["target"],"properties":{"target":{"description":"Name of the target variable to substitute using the values below. e.g. K_POINTS","type":"string"},"scope":{"description":"Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.","type":"string"},"name":{"description":"Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.","type":"string"},"values":{"description":"Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution","type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"object"}]}},"useValues":{"type":"boolean"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"subworkflow unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"subworkflow"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"properties":{"description":"Array of characteristic properties calculated by this workflow (TODO: add enums)","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","oneOf":[{"type":"string"},{"type":"object"}]}},"isUsingDataset":{"description":"Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab.","type":"boolean"},"workflows":{"description":"Array of workflows with the same schema as the current one.","type":"array","items":{"type":"object"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Magnetic moments property schema","description":"magnetization on each ion","type":"object","properties":{"name":{"enum":["magnetic_moments"]},"values":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vectors schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vector schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"enum":["uB"]}},"required":["name","values","units"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Atomic forces property schema","description":"coordinates of atoms by ids, vector, unitless","type":"object","properties":{"name":{"enum":["atomic_forces"]},"values":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vectors schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic vector schema","description":"object containing integer id and value each","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector 3d schema","type":"array","minItems":3,"maxItems":3,"description":"value of this entry","items":{"type":"number"}},"id":{"description":"integer id of this entry","type":"integer"}}}},"units":{"enum":["eV/bohr","eV/angstrom","Ry/a.u.","newton","kg*m/s^2","eV/a.u."]}},"required":["name","units","values"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Convergence electronic property schema","type":"object","properties":{"name":{"enum":["convergence_electronic"]},"units":{"enum":["eV","Ry","hartree"]},"data":{"type":"array","items":{"type":"array","items":{"type":"number"}}}},"required":["data","name","units"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Convergence ionic property schema","type":"object","properties":{"name":{"enum":["convergence_ionic"]},"tolerance":{"description":"for ionic convergence tolerance shows force tolerance"},"units":{"description":"units for force tolerance","enum":["eV"]},"data":{"type":"array","description":"energetic and structural information","items":{"type":"object","required":["energy"],"properties":{"energy":{"description":"converged electronic energy for this structure (last in `electronic`)","type":"number"},"structure":{"description":"TODO: structural information at each step to be here","type":"object"},"electronic":{"description":"data about electronic at this ionic step","type":"object","properties":{"units":{"description":"units for force tolerance","enum":["eV","Ry","hartree"]},"data":{"type":"array","items":{"type":"number"}}}}}}}},"required":["data","name","units"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Is relaxed property schema","type":"object","properties":{"name":{"enum":["is_relaxed"]},"value":{"type":"boolean"},"materialId":{"description":"Material's identity","type":"string"}},"required":["name","value","materialId"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Final structure property schema","type":"object","properties":{"name":{"enum":["final_structure"]},"isRelaxed":{"type":"boolean"},"materialId":{"description":"Material's identity","type":"string"}},"required":["name","isRelaxed","materialId"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"Jupyter notebook endpoint property schema","type":"object","properties":{"name":{"enum":["jupyter_notebook_endpoint"]},"host":{"type":"string"},"port":{"type":"number"},"token":{"type":"string"}},"required":["name","host","port","token"]}],"discriminator":{"propertyName":"name"}},"source":{"type":"object","required":["type","info"],"properties":{"type":{"description":"Type of the material property's source.","type":"string"},"info":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","required":["jobId","unitId"],"properties":{"jobId":{"description":"Job's identity","type":"string"},"unitId":{"description":"Id of the unit that extracted the result","type":"string"}}}}},"exabyteId":{"description":"Id of the corresponding item in the entity bank that this property is obtained for","type":"array","items":{"type":"string"}},"precision":{"type":"object","properties":{"value":{"type":"number"},"metric":{"type":"string"}}},"systemTags":{"description":"property system tags, marks property system characteristics, values refined or best (could be both)","type":"array","items":{"type":"string","enum":["isRefined","isBest"]}},"repetition":{"type":"number"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"}}},{"$id":"property/meta-holder","$schema":"http://json-schema.org/draft-07/schema#","title":"Meta property holder schema","type":"object","required":["data","source"],"properties":{"data":{"description":"container of the information, specific to each property","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"File data item","type":"object","properties":{"element":{"type":"string","description":"chemical element"},"hash":{"type":"string","description":"MD5 hash of the pseudopotential file"},"type":{"enum":["us","nc","nc-fr","paw","coulomb"]},"source":{"type":"string","description":"explains where this came from"},"version":{"type":"string","description":"explains the version of where this came from"},"exchangeCorrelation":{"type":"object","properties":{"approximation":{"description":"DFT approximation","type":"string"},"functional":{"description":"Exchange correlation functional","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"}}},"valenceConfiguration":{"type":"array","description":"contains pseudo orbital information, including orbital names and occupations","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic orbital schema","type":"object","properties":{"orbitalName":{"type":"string","pattern":"^[1-7][sSpPdDfF]$"},"orbitalIndex":{"type":"integer","minimum":1},"principalNumber":{"type":"integer","minimum":1,"maximum":7},"angularMomentum":{"type":"integer","minimum":0,"maximum":3},"occupation":{"type":"number","description":"Shell occupation","minimum":0,"maximum":14}}}},"path":{"type":"string","description":"location of the pseudopotential file on filesystem"},"apps":{"type":"array","description":"The names of the simulation engines that can use this pseudopotential, e.g. espresso","items":{"type":"string"}},"filename":{"type":"string","description":"filename of pseudopotential file on filesystem"},"name":{"type":"string","description":"name of the data category","enum":["pseudopotential"]},"cutoffs":{"type":"object","description":"Suggested cutoff values for wave function and charge density.","additionalProperties":false,"properties":{"wavefunction":{"type":"array","description":"Energy cutoff values for wavefunction plane wave expansion.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}}},"density":{"type":"array","description":"Energy cutoff values for charge density plane wave expansion.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Reusable schema for energy value with unit corresponding to a specific accuracy level, e.g., used for suggested wavefunction and charge density cutoffs","type":"object","required":["accuracy_level","unit","value"],"properties":{"unit":{"description":"Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry.","type":"string","enum":["Ry"]},"accuracy_level":{"description":"Accuracy level determines suggested scalar value.","type":"string","enum":["standard","low","high"]},"value":{"type":"number"}}}}}}},"required":["element","type","exchangeCorrelation","source","path","apps","name","hash"]}]},"source":{"type":"object","required":["type"],"properties":{"type":{"description":"Type of the material property's source.","type":"string"},"info":{"type":"object"}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"}}},{"$id":"property/proto-holder","$schema":"http://json-schema.org/draft-07/schema#","title":"Proto property holder schema","type":"object","required":["data","source"],"properties":{"data":{"description":"container of the information, specific to each property","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraints property schema","description":"atomic constraints property schema (as stored in a database)","type":"object","properties":{"name":{"enum":["atomic_constraints"]},"values":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraints schema","description":"atomic constraints schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"atomic constraint schema","description":"constraint of atoms by ids, used to constraint the position etc.","type":"object","required":["id","value"],"properties":{"value":{"$schema":"http://json-schema.org/draft-07/schema#","title":"vector boolean 3d schema","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"array of 3 boolean elements schema","type":"array","items":{"type":"boolean"},"minItems":3,"maxItems":3}],"description":"value of this entry"},"id":{"description":"integer id of this entry","type":"integer"}}}}},"required":["name","values"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"boundary conditions property schema","description":"boundary conditions property schema (as stored in a database)","type":"object","properties":{"name":{"enum":["boundary_conditions"]},"type":{"type":"string","enum":["pbc","bc1","bc2","bc3"],"default":"pbc","description":"If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab."},"offset":{"type":"number"}},"required":["name","type","offset"]}]},"source":{"type":"object","required":["type","info"],"properties":{"type":{"description":"Type of the material property's source.","type":"string"},"info":{"type":"object","properties":{"materialId":{"type":"string"}}}}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"}}},{"$id":"property/source","$schema":"http://json-schema.org/draft-07/schema#","title":"Property source schema","type":"object","required":["info"],"properties":{"type":{"description":"Type of the material property's source.","type":"string"},"url":{"description":"Internet address of the reference.","type":"string"},"info":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"jobId":{"description":"Job's identity","type":"string"},"unitId":{"description":"Id of the unit that extracted the result","type":"string"}},"required":["jobId","unitId"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"info for characteristic obtained by experiment","type":"object","properties":{"type":{"enum":["experiment"]},"authors":{"description":"experiment authors","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"title":{"type":"string","description":"experiment title"},"method":{"type":"string","description":"method used in experiment"},"conditions":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition schema","type":"object","required":["name"],"properties":{"units":{"description":"condition unit","type":"string"},"scalar":{"description":"array of condition values","type":"array","items":{"type":"object","properties":{"value":{"type":"string"}}}},"name":{"description":"human-readable name of the condition","type":"string"}}}},"location":{"$schema":"http://json-schema.org/draft-07/schema#","title":"location schema","type":"object","required":["latitude","longitude"],"properties":{"latitude":{"description":"location latitude","type":"number"},"longitude":{"description":"location longitude","type":"number"}}},"timestamp":{"description":"epoch time.","type":"number"},"note":{"description":"Note about experiment","type":"string"},"references":{"type":"array","description":"references to literature articles","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"literature reference schema","type":"object","properties":{"type":{"enum":["literature"]},"doi":{"type":"string","description":"Digital Object Identifier of the reference."},"isbn":{"type":"string","description":"International Standard Book Number of the reference."},"issn":{"type":"string","description":"International Standard Serial Number of the reference."},"url":{"type":"string","description":"Internet address of the reference."},"title":{"type":"string","description":"Title of the work."},"publisher":{"type":"string","description":"Publisher of the work."},"journal":{"type":"string","description":"Journal in which the work appeared."},"volume":{"type":"string","description":"Volume of the series in which the work appeared."},"year":{"type":"string","description":"Year in which the reference was published."},"issue":{"type":"string","description":"Issue of the collection in which the work appeared."},"pages":{"type":"object","description":"Start and end pages of the work.","$schema":"http://json-schema.org/draft-07/schema#","title":"pages schema","required":["start"],"properties":{"start":{"type":"string"},"end":{"type":"string"}}},"authors":{"type":"array","description":"List of authors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"editors":{"type":"array","description":"List of editors of the work.","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"experiment author schema","type":"object","required":["first","last"],"properties":{"first":{"type":"string"},"middle":{"type":"string"},"last":{"type":"string"},"affiliation":{"type":"string"}}}},"reference":{"type":"array","description":"References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published.","items":{"type":"object"}}}}}},"required":["conditions","authors","title","method","timestamp"]}]}}},{"$id":"software/application","$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},{"$id":"software/application-properties","$schema":"http://json-schema.org/draft-07/schema#","title":"application properties schema","type":"object","required":["shortName","summary","version","build"],"properties":{"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},{"$id":"software/executable","$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},{"$id":"software/executable-properties","$schema":"http://json-schema.org/draft-07/schema#","title":"executable properties schema","type":"object","required":["name","applicationId"],"properties":{"name":{"description":"The name of the executable. e.g. pw.x","type":"string"},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},{"$id":"software/flavor","$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},{"$id":"software/flavor-properties","$schema":"http://json-schema.org/draft-07/schema#","title":"flavor properties schema","type":"object","required":["executableId","input"],"properties":{"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},{"$id":"software/template","$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},{"$id":"software/template-properties","$schema":"http://json-schema.org/draft-07/schema#","title":"template properties schema","type":"object","required":["applicationName","executableName","contextProviders","content"],"properties":{"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},{"$id":"software-directory/modeling/deepmd","$schema":"http://json-schema.org/draft-07/schema#","title":"DeePMD app schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"name":{"enum":["deepmd"],"description":"entity name","type":"string"},"summary":{"enum":["DeePMD is a deep learning package that is based on neural network fitted first-principles data for many-body potential energy representation and molecular dynamics"],"description":"Application's short description.","type":"string"},"version":{"enum":["2.0.2"],"description":"Application version. e.g. 5.3.5","type":"string"},"exec":{"enum":["dp","lmp","python"]},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},{"$id":"software-directory/modeling/espresso/arguments","$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},{"$id":"software-directory/modeling/espresso","$schema":"http://json-schema.org/draft-07/schema#","title":"espresso app schema","type":"object","properties":{"name":{"enum":["espresso"]},"summary":{"enum":["Quantum Espresso"]},"version":{"enum":["5.2.1","5.4.0","6.0.0","6.3","6.4.1","6.5.0","6.6.0","6.7.0","6.8.0","7.0","7.2","7.3"]}}},{"$id":"software-directory/modeling/nwchem","$schema":"http://json-schema.org/draft-07/schema#","title":"NWChem","type":"object","required":["build","name","shortName","summary","version"],"properties":{"name":{"enum":["NWChem"],"description":"entity name","type":"string"},"summary":{"enum":["NWChem: a comprehensive and scalable open-source solution for large scale molecular simulations"],"description":"Application's short description.","type":"string"},"version":{"enum":["6.6","7.0.2"],"description":"Application version. e.g. 5.3.5","type":"string"},"exec":{"enum":["nwchem"]},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},{"$id":"software-directory/modeling/unit/execution","$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema for physics-based simulation engines (defined using espresso as example)","type":"object","required":["application","flowchartId","input","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"execution"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},"input":{"type":"array","title":"execution unit input schema","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}},"required":["rendered","isManuallyChanged","template"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}},"additionalProperties":false}],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}}},"context":{"type":"array","items":{"type":"object","required":["name","isEdited","data"],"properties":{"name":{"type":"string","tsType":"ContextProviderNameEnum"},"isEdited":{"type":"boolean"},"data":{"type":"object"},"extraData":{"type":"object"}}}}}},{"$id":"software-directory/modeling/vasp","$schema":"http://json-schema.org/draft-07/schema#","title":"vienna ab-inito simulation package","type":"object","required":["build","name","shortName","summary","version"],"properties":{"name":{"enum":["vasp"],"description":"entity name","type":"string"},"summary":{"enum":["vienna ab-initio simulation package"],"description":"Application's short description.","type":"string"},"flavor":{"enum":["vasp","vasp_nscf","vasp_bands"]},"version":{"enum":["5.3.5"],"description":"Application version. e.g. 5.3.5","type":"string"},"exec":{"enum":["vasp"]},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},{"$id":"software-directory/scripting/jupyter-lab","$schema":"http://json-schema.org/draft-07/schema#","title":"Jupyter Lab Application Schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"name":{"enum":["jupyterLab"],"description":"entity name","type":"string"},"flavor":{"enum":["notebook"]},"summary":{"enum":["Jupyter Lab"],"description":"Application's short description.","type":"string"},"version":{"enum":["0.33.12"],"description":"Application version. e.g. 5.3.5","type":"string"},"exec":{"enum":["jupyter"]},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},{"$id":"software-directory/scripting/python","$schema":"http://json-schema.org/draft-07/schema#","title":"Python Programing Language Schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"name":{"enum":["python"],"description":"entity name","type":"string"},"flavor":{"enum":["python2","python3"]},"summary":{"enum":["Python Script"],"description":"Application's short description.","type":"string"},"version":{"enum":["2.7.5","3.6.1"],"description":"Application version. e.g. 5.3.5","type":"string"},"exec":{"enum":["python"]},"arguments":{"description":"Optional arguments passed to the Python script","type":"string"},"environment":{"description":"Optional environment variables exported before running the Python script","type":"object"},"dependencies":{"description":"Optional Python dependencies, e.g. amqp==1.4.6","type":"array"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},{"$id":"software-directory/scripting/shell","$schema":"http://json-schema.org/draft-07/schema#","title":"Shell Scripting Language Schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"name":{"enum":["shell"],"description":"entity name","type":"string"},"flavor":{"enum":["sh","bash","zsh","csh"]},"summary":{"enum":["Shell Script"],"description":"Application's short description.","type":"string"},"version":{"enum":["4.2.46"],"description":"Application version. e.g. 5.3.5","type":"string"},"exec":{"enum":["sh","bash","zsh","csh"]},"arguments":{"description":"Optional arguments passed to the Shell script","type":"string"},"environment":{"description":"Optional environment variables exported before running the Shell script","type":"object"},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},{"$id":"software-directory/scripting/unit/execution","$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema for scripting-based applications","type":"object","required":["application","flowchartId","input","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"execution"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},"input":{"type":"array","title":"execution unit input schema","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}},"required":["rendered","isManuallyChanged","template"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}},"additionalProperties":false}],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}}},"context":{"type":"array","items":{"type":"object","required":["name","isEdited","data"],"properties":{"name":{"type":"string","tsType":"ContextProviderNameEnum"},"isEdited":{"type":"boolean"},"data":{"type":"object"},"extraData":{"type":"object"}}}}}},{"$id":"system/-material","$schema":"http://json-schema.org/draft-07/schema#","title":"Material entity reference schema","type":"object","required":["_id"],"properties":{"cls":{"description":"Material class","type":"string","enum":["Material"]},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"}}},{"$id":"system/-parent-job","$schema":"http://json-schema.org/draft-07/schema#","title":"Parent job entity reference schema","type":"object","required":["_id"],"properties":{"cls":{"description":"Job class","type":"string","enum":["Job"]},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"}}},{"$id":"system/-project","$schema":"http://json-schema.org/draft-07/schema#","title":"Project entity reference schema","type":"object","required":["_id"],"properties":{"cls":{"description":"Project class","type":"string","enum":["Project"]},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"}}},{"$id":"system/bankable","$schema":"http://json-schema.org/draft-07/schema#","title":"bankable schema","type":"object","properties":{"exabyteId":{"description":"Identity of the corresponding bank entity","type":"string"},"hash":{"description":"Hash string which is calculated based on the meaningful fields of the entity. Used to identify equal entities.","type":"string"}}},{"$id":"system/consistency-check","$schema":"http://json-schema.org/draft-07/schema#","title":"consistency check","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"name":{"type":"string","description":"Name of the consistency check that is performed, which is listed in an enum."},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}},{"$id":"system/creator","$schema":"http://json-schema.org/draft-07/schema#","title":"Creator entity reference schema","type":"object","required":["_id"],"properties":{"cls":{"description":"Creator class","type":"string","enum":["User"]},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"}}},{"$id":"system/creator-account","$schema":"http://json-schema.org/draft-07/schema#","title":"creator account schema","type":"object","properties":{"creatorAccount":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}}}},{"$id":"system/database-source","$schema":"http://json-schema.org/draft-07/schema#","title":"database source schema","description":"information about a database source","type":"object","required":["id","source","origin"],"properties":{"id":{"description":"ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32","oneOf":[{"type":"string"},{"type":"number"}]},"source":{"description":"Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.","type":"string"},"origin":{"description":"Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).","type":"boolean"},"data":{"description":"Original response from external source.","type":"object"},"doi":{"description":"Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506","type":"string"},"url":{"description":"The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers","type":"string"}}},{"$id":"system/defaultable","$schema":"http://json-schema.org/draft-07/schema#","title":"defaultable entity schema","type":"object","properties":{"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false}}},{"$id":"system/description","$schema":"http://json-schema.org/draft-07/schema#","title":"Description schema","type":"object","properties":{"description":{"description":"entity description","type":"string"},"descriptionObject":{"type":"object"}}},{"$id":"system/entity-reference","$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}},{"$id":"system/file-source","$schema":"http://json-schema.org/draft-07/schema#","title":"file source schema","description":"file source with the information inside","type":"object","required":["filename","text","hash"],"properties":{"extension":{"description":"file extension","type":"string"},"filename":{"description":"file name without extension","type":"string"},"text":{"description":"file content as raw text","type":"string"},"hash":{"description":"MD5 hash based on file content","type":"string"}}},{"$id":"system/has-consistency-check","$schema":"http://json-schema.org/draft-07/schema#","title":"Has consistency check schema","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","properties":{"consistencyChecks":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"consistency check","type":"object","description":"The output of consistency checks performed on data adhering to JSON schema, but inconsistent with scientific or logical rules, to show problems in UI.","required":["key","name","severity","message"],"properties":{"key":{"type":"string","description":"Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'"},"name":{"type":"string","description":"Name of the consistency check that is performed, which is listed in an enum."},"severity":{"enum":["info","warning","error"],"description":"Severity level of the problem, which is used in UI to differentiate."},"message":{"type":"string","description":"Message generated by the consistency check describing the problem."}}}}}},{"$id":"system/history","$schema":"http://json-schema.org/draft-07/schema#","title":"history schema","type":"object","properties":{"history":{"type":"array","items":{"type":"object","required":["id","revision"],"properties":{"id":{"type":"string"},"revision":{"type":"number"}}}}}},{"$id":"system/iframe-message","$schema":"http://json-schema.org/draft-07/schema#","title":"iframe message schema","description":"communication message between iframe and the parent window.","type":"object","required":["type","action","payload"],"properties":{"type":{"description":"The type of the message to distinguish the direction of the message.","type":"string","enum":["from-iframe-to-host","from-host-to-iframe"],"tsEnumNames":["fromIframeToHost","fromHostToIframe"]},"action":{"description":"The action to be performed upon receiving the message.","type":"string","enum":["set-data","get-data","info"],"tsEnumNames":["setData","getData","info"]},"payload":{"description":"The content of the message with actual data.","type":"object"}}},{"$id":"system/in-set","$schema":"http://json-schema.org/draft-07/schema#","title":"System in-set schema","type":"object","properties":{"inSet":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"},"type":{"type":"string"},"index":{"type":"number"}}}}}},{"$id":"system/is-multi-material","$schema":"http://json-schema.org/draft-07/schema#","title":"is multi schema","type":"object","properties":{"isMultiMaterial":{"type":"boolean"}}},{"$id":"system/is-outdated","$schema":"http://json-schema.org/draft-07/schema#","title":"is outdated schema","type":"object","properties":{"isOutdated":{"type":"boolean"}}},{"$id":"system/job-extended","$schema":"http://json-schema.org/draft-07/schema#","title":"extended job schema","type":"object","properties":{"mode":{"type":"string"},"isExternal":{"type":"boolean"},"_materials":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}}},"_materialsSet":{"$schema":"http://json-schema.org/draft-07/schema#","title":"entity reference schema","type":"object","required":["_id"],"properties":{"_id":{"description":"entity identity","type":"string"},"cls":{"description":"entity class","type":"string"},"slug":{"description":"entity slug","type":"string"}}},"purged":{"type":"boolean"},"purgedAt":{"type":"number"},"dataset":{"type":"object"}}},{"$id":"system/message","$schema":"http://json-schema.org/draft-07/schema#","title":"message schema","description":"communication message between Rupy and web application.","type":"object","required":["header","payload"],"properties":{"header":{"type":"object","required":["entity","version","timestamp"],"properties":{"entity":{"type":"object","required":["_id","name"],"properties":{"_id":{"description":"job identifier","type":"string"},"name":{"description":"entity name.","type":"string","enum":["job","unit"]},"flowchartId":{"description":"unit identifier within the workflow","type":"string"},"probe":{"description":"source of the message.","type":"string","enum":["monitor","postprocessor"]}}},"version":{"description":"Rupy-Webapp communication schema version.","type":"string"},"timestamp":{"description":"Timestamp of the message.","type":"number"}}},"payload":{"description":"Actual payload of the message.","type":"object"}}},{"$id":"system/metadata","$schema":"http://json-schema.org/draft-07/schema#","title":"metadata schema","type":"object","properties":{"metadata":{"type":"object"}}},{"$id":"system/name","$schema":"http://json-schema.org/draft-07/schema#","title":"name entity schema","type":"object","required":["name"],"properties":{"name":{"description":"entity name","type":"string"}}},{"$id":"system/owner","$schema":"http://json-schema.org/draft-07/schema#","title":"Entity owner reference schema","type":"object","required":["_id"],"properties":{"cls":{"description":"Entity owner class","type":"string","enum":["Account"]},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"}}},{"$id":"system/path","$schema":"http://json-schema.org/draft-07/schema#","title":"path schema","type":"object","properties":{"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"}}},{"$id":"system/path-entity","$schema":"http://json-schema.org/draft-07/schema#","title":"path entity schema","type":"object","required":["name"],"properties":{"name":{"description":"entity name","type":"string"},"path":{"$schema":"http://json-schema.org/draft-07/schema#","title":"category path schema","description":"TODO: Use regex once schema draft version has been updated","type":"string"}}},{"$id":"system/runtime-item","$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}},{"$id":"system/runtime-items","$schema":"http://json-schema.org/draft-07/schema#","title":"runtime items schema","type":"object","required":["preProcessors","postProcessors","monitors","results"],"properties":{"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}}}},{"$id":"system/schema-version","$schema":"http://json-schema.org/draft-07/schema#","title":"schema version","type":"object","properties":{"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"}}},{"$id":"system/scope","$schema":"http://json-schema.org/draft-07/schema#","title":"scope schema","type":"object","properties":{"scope":{"type":"string"}}},{"$id":"system/set","$schema":"http://json-schema.org/draft-07/schema#","title":"Entity set schema","type":"object","properties":{"isEntitySet":{"type":"boolean"},"entitySetType":{"type":"string"},"entityCls":{"type":"string"}}},{"$id":"system/sharing","$schema":"http://json-schema.org/draft-07/schema#","title":"extended sharing schema","type":"object","properties":{"sharedCount":{"type":"number"}}},{"$id":"system/soft-removable","$schema":"http://json-schema.org/draft-07/schema#","title":"soft removable entity schema","type":"object","properties":{"removedAt":{"description":"Timestamp of the moment when entity was removed","type":"string"},"removed":{"description":"Identifies that entity was removed","type":"boolean"}}},{"$id":"system/status","$schema":"http://json-schema.org/draft-07/schema#","title":"status schema","type":"object","properties":{"status":{"type":"string"},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}}}},{"$id":"system/tags","$schema":"http://json-schema.org/draft-07/schema#","title":"entity tags schema","type":"object","properties":{"tags":{"description":"entity tags","type":"array","items":{"type":"string"}}}},{"$id":"system/timestampable","$schema":"http://json-schema.org/draft-07/schema#","title":"timestampable entity schema","type":"object","properties":{"createdAt":{"description":"entity creation time","type":"string","format":"date-time"},"updatedAt":{"description":"entity last modification time","type":"string","format":"date-time"},"createdBy":{"type":"string"},"updatedBy":{"type":"string"}}},{"$id":"system/use-values","$schema":"http://json-schema.org/draft-07/schema#","title":"use values schema","type":"object","properties":{"useValues":{"type":"boolean"}}},{"$id":"workflow/base","$schema":"http://json-schema.org/draft-07/schema#","title":"base workflow schema","type":"object","required":["name"],"properties":{"properties":{"description":"Array of characteristic properties calculated by this workflow (TODO: add enums)","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","oneOf":[{"type":"string"},{"type":"object"}]}},"isUsingDataset":{"description":"Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab.","type":"boolean"},"workflows":{"description":"Array of workflows with the same schema as the current one.","type":"array","items":{"type":"object"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}},{"$id":"workflow/scope","$schema":"http://json-schema.org/draft-07/schema#","title":"workflow scope schema","type":"object","required":["global","local"],"properties":{"global":{"type":"object","additionalProperties":true},"local":{"type":"object","additionalProperties":true}}},{"$id":"workflow/subworkflow/mixin","$schema":"http://json-schema.org/draft-07/schema#","title":"Subworkflow Mixin Schema","type":"object","required":["model","application","units"],"properties":{"properties":{"description":"Array of characteristic properties calculated by this subworkflow","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","type":"string"}},"compute":{"$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}},"units":{"description":"Contains the Units of the subworkflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow subworkflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","source","subtype","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"io"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database ids input/output schema","type":"object","properties":{"type":{"const":"db_ids"},"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["type","ids"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database collection input/output schema","type":"object","properties":{"type":{"const":"db_collection"},"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["type","collection","draft"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["type","objectData"],"properties":{"type":{"const":"object_storage"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}],"discriminator":{"propertyName":"type"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"reduce"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","monitors","name","postProcessors","preProcessors","results","statement","then","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"condition"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","statement","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assertion"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"execution"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},"input":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}}},"context":{"type":"array","items":{"type":"object","required":["name","isEdited","data"],"properties":{"name":{"type":"string","tsType":"ContextProviderNameEnum"},"isEdited":{"type":"boolean"},"data":{"type":"object"},"extraData":{"type":"object"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","monitors","name","operand","postProcessors","preProcessors","results","type","value"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assignment"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"scope":{"type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","monitors","name","operation","operationType","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"processing"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"model":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base model","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"isDraft":{"description":"Defines whether to store the results/properties extracted in this unit to properties collection","type":"boolean","default":false}}},{"$id":"workflow/subworkflow/unit","$schema":"http://json-schema.org/draft-07/schema#","title":"workflow subworkflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","source","subtype","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"io"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database ids input/output schema","type":"object","properties":{"type":{"const":"db_ids"},"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["type","ids"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database collection input/output schema","type":"object","properties":{"type":{"const":"db_collection"},"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["type","collection","draft"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["type","objectData"],"properties":{"type":{"const":"object_storage"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}],"discriminator":{"propertyName":"type"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"reduce"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","monitors","name","postProcessors","preProcessors","results","statement","then","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"condition"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","statement","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assertion"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"execution"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},"input":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}}},"context":{"type":"array","items":{"type":"object","required":["name","isEdited","data"],"properties":{"name":{"type":"string","tsType":"ContextProviderNameEnum"},"isEdited":{"type":"boolean"},"data":{"type":"object"},"extraData":{"type":"object"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","monitors","name","operand","postProcessors","preProcessors","results","type","value"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assignment"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"scope":{"type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","monitors","name","operation","operationType","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"processing"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"}}}],"discriminator":{"propertyName":"type"},"required":["type"]},{"$id":"workflow/subworkflow","$schema":"http://json-schema.org/draft-07/schema#","title":"Subworkflow Schema","type":"object","required":["application","model","name","units"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"properties":{"description":"Array of characteristic properties calculated by this subworkflow","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","type":"string"}},"compute":{"$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}},"units":{"description":"Contains the Units of the subworkflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow subworkflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","source","subtype","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"io"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database ids input/output schema","type":"object","properties":{"type":{"const":"db_ids"},"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["type","ids"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database collection input/output schema","type":"object","properties":{"type":{"const":"db_collection"},"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["type","collection","draft"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["type","objectData"],"properties":{"type":{"const":"object_storage"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}],"discriminator":{"propertyName":"type"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"reduce"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","monitors","name","postProcessors","preProcessors","results","statement","then","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"condition"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","statement","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assertion"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"execution"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},"input":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}}},"context":{"type":"array","items":{"type":"object","required":["name","isEdited","data"],"properties":{"name":{"type":"string","tsType":"ContextProviderNameEnum"},"isEdited":{"type":"boolean"},"data":{"type":"object"},"extraData":{"type":"object"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","monitors","name","operand","postProcessors","preProcessors","results","type","value"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assignment"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"scope":{"type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","monitors","name","operation","operationType","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"processing"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"model":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base model","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"isDraft":{"description":"Defines whether to store the results/properties extracted in this unit to properties collection","type":"boolean","default":false}}},{"$id":"workflow/unit/assertion","$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","statement","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assertion"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"}}},{"$id":"workflow/unit/assignment","$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","monitors","name","operand","postProcessors","preProcessors","results","type","value"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assignment"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"scope":{"type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]}}},{"$id":"workflow/unit/base","$schema":"http://json-schema.org/draft-07/schema#","title":"workflow base unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"}}},{"$id":"workflow/unit/condition","$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","monitors","name","postProcessors","preProcessors","results","statement","then","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"condition"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"}}},{"$id":"workflow/unit/execution","$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"execution"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},"input":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}}},"context":{"type":"array","items":{"type":"object","required":["name","isEdited","data"],"properties":{"name":{"type":"string","tsType":"ContextProviderNameEnum"},"isEdited":{"type":"boolean"},"data":{"type":"object"},"extraData":{"type":"object"}}}}}},{"$id":"workflow/unit/input/-input","$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input schema","type":"object","properties":{"input":{"title":"execution unit input schema","type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}},"required":["rendered","isManuallyChanged","template"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}},"additionalProperties":false}]}}}},{"$id":"workflow/unit/input/-inputItem","$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}},{"$id":"workflow/unit/input/-inputItemId","$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}},{"$id":"workflow/unit/input/-inputItemScope","$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}},{"$id":"workflow/unit/input/-map-input/values","$schema":"http://json-schema.org/draft-07/schema#","title":"Unit values schema","type":"object","properties":{"values":{"type":"string"}}},{"$id":"workflow/unit/input/-map-input","$schema":"http://json-schema.org/draft-07/schema#","title":"Unit map input schema","type":"object","properties":{"target":{"type":"string"},"values":{"type":"array","items":{"oneOf":[{"type":"number"},{"type":"string"},{"type":"object"}]}},"useValues":{"type":"boolean"},"scope":{"type":"string"},"name":{"type":"string"}}},{"$id":"workflow/unit/io/db-collection","$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database collection input/output schema","type":"object","required":["type","collection","draft"],"properties":{"type":{"const":"db_collection"},"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}}},{"$id":"workflow/unit/io/db-ids","$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database ids input/output schema","type":"object","required":["type","ids"],"properties":{"type":{"const":"db_ids"},"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}}},{"$id":"workflow/unit/io/object-storage","$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["type","objectData"],"properties":{"type":{"const":"object_storage"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}},{"$id":"workflow/unit/io","$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","source","subtype","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"io"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database ids input/output schema","type":"object","properties":{"type":{"const":"db_ids"},"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["type","ids"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database collection input/output schema","type":"object","properties":{"type":{"const":"db_collection"},"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["type","collection","draft"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["type","objectData"],"properties":{"type":{"const":"object_storage"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}],"discriminator":{"propertyName":"type"}}}}},{"$id":"workflow/unit/map","$schema":"http://json-schema.org/draft-07/schema#","title":"map unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","type","workflowId"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"map"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"workflowId":{"description":"Id of workflow to run inside map","type":"string"},"input":{"description":"Input information for map.","type":"object","required":["target"],"properties":{"target":{"description":"Name of the target variable to substitute using the values below. e.g. K_POINTS","type":"string"},"scope":{"description":"Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.","type":"string"},"name":{"description":"Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.","type":"string"},"values":{"description":"Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution","type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"object"}]}},"useValues":{"type":"boolean"}}}}},{"$id":"workflow/unit/mixins/assertion","$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit mixin schema","type":"object","required":["name","statement"],"properties":{"type":{"const":"assertion"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"}}},{"$id":"workflow/unit/mixins/assignment","$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit mixin schema","type":"object","required":["name","operand","value"],"properties":{"type":{"const":"assignment"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]}}},{"$id":"workflow/unit/mixins/base","$schema":"http://json-schema.org/draft-07/schema#","title":"workflow base unit mixin schema","type":"object","required":["type","flowchartId"],"properties":{"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string"},"name":{"description":"name of the unit. e.g. pw_scf","type":"string"},"status":{"description":"Status of the unit.","type":"string","enum":["idle","active","warning","error","finished"]},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"}}},{"$id":"workflow/unit/mixins/condition","$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit mixin schema","type":"object","required":["input","statement","then","else","maxOccurrences"],"properties":{"type":{"const":"condition"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"}}},{"$id":"workflow/unit/mixins/execution","$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit mixin schema","type":"object","required":["input","application"],"properties":{"type":{"const":"execution"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},"input":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}}},"context":{"type":"array","items":{"type":"object","required":["name","isEdited","data"],"properties":{"name":{"type":"string","tsType":"ContextProviderNameEnum"},"isEdited":{"type":"boolean"},"data":{"type":"object"},"extraData":{"type":"object"}}}}}},{"$id":"workflow/unit/mixins/io","$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit mixin schema","type":"object","required":["subtype","source","input"],"properties":{"type":{"const":"io"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database ids input/output schema","type":"object","properties":{"type":{"const":"db_ids"},"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["type","ids"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database collection input/output schema","type":"object","properties":{"type":{"const":"db_collection"},"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["type","collection","draft"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["type","objectData"],"properties":{"type":{"const":"object_storage"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}],"discriminator":{"propertyName":"type"}}}}},{"$id":"workflow/unit/mixins/map","$schema":"http://json-schema.org/draft-07/schema#","title":"map unit mixin schema","type":"object","required":["input","workflowId"],"properties":{"type":{"const":"map"},"workflowId":{"description":"Id of workflow to run inside map","type":"string"},"input":{"description":"Input information for map.","type":"object","required":["target"],"properties":{"target":{"description":"Name of the target variable to substitute using the values below. e.g. K_POINTS","type":"string"},"scope":{"description":"Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.","type":"string"},"name":{"description":"Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.","type":"string"},"values":{"description":"Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution","type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"object"}]}},"useValues":{"type":"boolean"}}}}},{"$id":"workflow/unit/mixins/processing","$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit mixin schema","type":"object","required":["operation","operationType","inputData"],"properties":{"type":{"const":"processing"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"}}},{"$id":"workflow/unit/mixins/reduce","$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit mixin schema","type":"object","required":["mapFlowchartId","input"],"properties":{"type":{"const":"reduce"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}}}},{"$id":"workflow/unit/mixins/subworkflow","$schema":"http://json-schema.org/draft-07/schema#","title":"subworkflow unit mixin schema","type":"object","properties":{"type":{"const":"subworkflow"}}},{"$id":"workflow/unit/processing","$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","monitors","name","operation","operationType","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"processing"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"}}},{"$id":"workflow/unit/reduce","$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"reduce"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}}}},{"$id":"workflow/unit/subworkflow","$schema":"http://json-schema.org/draft-07/schema#","title":"subworkflow unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"subworkflow"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"}}},{"$id":"workflow/unit","$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","source","subtype","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"io"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database ids input/output schema","type":"object","properties":{"type":{"const":"db_ids"},"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["type","ids"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database collection input/output schema","type":"object","properties":{"type":{"const":"db_collection"},"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["type","collection","draft"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["type","objectData"],"properties":{"type":{"const":"object_storage"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}],"discriminator":{"propertyName":"type"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"reduce"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","monitors","name","postProcessors","preProcessors","results","statement","then","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"condition"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","statement","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assertion"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"execution"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},"input":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}}},"context":{"type":"array","items":{"type":"object","required":["name","isEdited","data"],"properties":{"name":{"type":"string","tsType":"ContextProviderNameEnum"},"isEdited":{"type":"boolean"},"data":{"type":"object"},"extraData":{"type":"object"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","monitors","name","operand","postProcessors","preProcessors","results","type","value"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assignment"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"scope":{"type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","monitors","name","operation","operationType","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"processing"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"map unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","type","workflowId"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"map"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"workflowId":{"description":"Id of workflow to run inside map","type":"string"},"input":{"description":"Input information for map.","type":"object","required":["target"],"properties":{"target":{"description":"Name of the target variable to substitute using the values below. e.g. K_POINTS","type":"string"},"scope":{"description":"Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.","type":"string"},"name":{"description":"Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.","type":"string"},"values":{"description":"Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution","type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"object"}]}},"useValues":{"type":"boolean"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"subworkflow unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"subworkflow"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"}}}],"discriminator":{"propertyName":"type"},"required":["type"]},{"$id":"workflow","$schema":"http://json-schema.org/draft-07/schema#","title":"workflow schema","type":"object","required":["name","subworkflows","units"],"properties":{"subworkflows":{"description":"Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Subworkflow Schema","type":"object","required":["application","model","name","units"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"properties":{"description":"Array of characteristic properties calculated by this subworkflow","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","type":"string"}},"compute":{"$schema":"http://json-schema.org/draft-07/schema#","title":"compute arguments schema","description":"Custom keywords prefixed with validate correspond to custom validation methods implemented downstream","type":"object","required":["queue","nodes","ppn","timeLimit"],"properties":{"queue":{"description":"Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication.","type":"string","enum":["D","OR","OF","OFplus","SR","SF","SFplus","GPOF","GP2OF","GP4OF","GPSF","GP2SF","GP4SF","OR4","OR8","OR16","SR4","SR8","SR16","GOF","G4OF","G8OF","GSF","G4SF","G8SF"]},"nodes":{"description":"number of nodes used for the job inside the RMS.","type":"integer"},"ppn":{"description":"number of CPUs used for the job inside the RMS.","type":"integer"},"timeLimit":{"description":"Wallclock time limit for computing a job. Clock format: 'hh:mm:ss'","type":"string"},"timeLimitType":{"description":"Convention to use when reasoning about time limits","type":"string","default":"per single attempt","enum":["per single attempt","compound"]},"isRestartable":{"description":"Job is allowed to restart on termination.","type":"boolean","default":true},"notify":{"description":"Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined.","type":"string"},"email":{"description":"Email address to notify about job execution.","type":"string"},"maxCPU":{"description":"Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user.","type":"integer"},"arguments":{"description":"Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere","default":{},"$schema":"http://json-schema.org/draft-07/schema#","title":"quantum espresso arguments schema","type":"object","additionalProperties":false,"properties":{"nimage":{"description":"Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others.","type":"integer","default":1,"minimum":1,"maximum":100},"npools":{"description":"Each image can be subpartitioned into `pools`, each taking care of a group of k-points.","type":"integer","default":1,"minimum":1,"maximum":100},"nband":{"description":"Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions).","type":"integer","default":1,"minimum":1,"maximum":100},"ntg":{"description":"In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time.","type":"integer","default":1,"minimum":1,"maximum":100},"ndiag":{"description":"A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations.","type":"integer","default":1,"minimum":1,"maximum":100}}},"cluster":{"description":"Cluster where the job is executed. Optional on create. Required on job submission.","type":"object","properties":{"fqdn":{"description":"FQDN of the cluster. e.g. master-1-staging.exabyte.io","type":"string"},"jid":{"description":"Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io","type":"string"}}},"errors":{"description":"Computation error. Optional. Appears only if something happens on jobs execution.","type":"array","items":{"type":"object","properties":{"domain":{"description":"Domain of the error appearance (internal).","type":"string","enum":["rupy","alfred","celim","webapp"]},"reason":{"description":"Should be a short, unique, machine-readable error code string. e.g. FileNotFound","type":"string"},"message":{"description":"Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json'","type":"string"},"traceback":{"description":"Full machine-readable error traceback. e.g. FileNotFound","type":"string"}}}},"excludeFilesPattern":{"description":"A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix","type":"string"}}},"units":{"description":"Contains the Units of the subworkflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow subworkflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","source","subtype","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"io"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database ids input/output schema","type":"object","properties":{"type":{"const":"db_ids"},"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["type","ids"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database collection input/output schema","type":"object","properties":{"type":{"const":"db_collection"},"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["type","collection","draft"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["type","objectData"],"properties":{"type":{"const":"object_storage"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}],"discriminator":{"propertyName":"type"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"reduce"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","monitors","name","postProcessors","preProcessors","results","statement","then","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"condition"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","statement","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assertion"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"execution"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},"input":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}}},"context":{"type":"array","items":{"type":"object","required":["name","isEdited","data"],"properties":{"name":{"type":"string","tsType":"ContextProviderNameEnum"},"isEdited":{"type":"boolean"},"data":{"type":"object"},"extraData":{"type":"object"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","monitors","name","operand","postProcessors","preProcessors","results","type","value"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assignment"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"scope":{"type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","monitors","name","operation","operationType","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"processing"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"model":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base model","type":"object","required":["type","subtype","method"],"additionalProperties":true,"properties":{"type":{"description":"general type of the model, eg. `dft`","type":"string"},"subtype":{"description":"general subtype of the model, eg. `lda`","type":"string"},"method":{"$schema":"http://json-schema.org/draft-07/schema#","title":"base method","type":"object","required":["type","subtype"],"properties":{"type":{"description":"general type of this method, eg. `pseudopotential`","type":"string"},"subtype":{"description":"general subtype of this method, eg. `ultra-soft`","type":"string"},"precision":{"description":"Object showing the actual possible precision based on theory and implementation","type":"object"},"data":{"description":"additional data specific to method, eg. array of pseudopotentials","type":"object"}}}}},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"isDraft":{"description":"Defines whether to store the results/properties extracted in this unit to properties collection","type":"boolean","default":false}}}},"units":{"description":"Contains the Units of the Workflow","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit schema","type":"object","oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","source","subtype","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"io"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"subtype":{"enum":["input","output","dataFrame"]},"source":{"enum":["api","db","object_storage"]},"input":{"type":"array","items":{"oneOf":[{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database ids input/output schema","type":"object","properties":{"type":{"const":"db_ids"},"ids":{"description":"IDs of item to retrieve from db","type":"array","items":{"type":"string"}}},"required":["type","ids"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"data IO database collection input/output schema","type":"object","properties":{"type":{"const":"db_collection"},"collection":{"description":"db collection name","type":"string"},"draft":{"description":"whether the result should be saved as draft","type":"boolean"}},"required":["type","collection","draft"]},{"$schema":"http://json-schema.org/draft-07/schema#","title":"object_storage io schema","type":"object","required":["type","objectData"],"properties":{"type":{"const":"object_storage"},"objectData":{"$schema":"http://json-schema.org/draft-07/schema#","title":"Object Storage Container Data","type":"object","properties":{"CONTAINER":{"description":"Object storage container for the file","type":"string"},"NAME":{"description":"Name of the file inside the object storage bucket","type":"string"},"PROVIDER":{"description":"Object storage provider","type":"string"},"REGION":{"description":"Region for the object container specified in Container","type":"string"},"SIZE":{"description":"Size of the file in bytes","type":"integer"},"TIMESTAMP":{"description":"Unix timestamp showing when the file was last modified","type":"string"}}},"overwrite":{"description":"if a file with the same filename already exists, whether to overwrite the old file","type":"boolean"},"pathname":{"description":"Relative path to the directory that contains the file.","type":"string"},"basename":{"description":"Basename of the file","type":"string","$comment":"isGenerative:true"},"filetype":{"description":"What kind of file this is, e.g. image / text","type":"string"}}}],"discriminator":{"propertyName":"type"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"reduce unit schema","type":"object","required":["flowchartId","input","mapFlowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"reduce"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"mapFlowchartId":{"description":"corresponding map unit flowchart ID","type":"string"},"input":{"description":"input information for reduce unit","type":"array","items":{"type":"object","required":["operation","arguments"],"properties":{"operation":{"description":"reduce operation, e.g. aggregate","type":"string"},"arguments":{"description":"arguments which are passed to reduce operation function","type":"array","items":{"type":"string"}}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"condition unit schema","type":"object","required":["else","flowchartId","input","maxOccurrences","monitors","name","postProcessors","preProcessors","results","statement","then","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"condition"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"input":{"description":"Input information for condition.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"statement":{"description":"Condition statement. e.g. 'abs(x-total_energy) < 1e-5'","type":"string"},"then":{"description":"Flowchart ID reference for `then` part of the condition.","type":"string"},"else":{"description":"Flowchart ID reference for `else` part of the condition.","type":"string"},"maxOccurrences":{"description":"Maximum occurrence of the condition, usable for loops.","type":"integer"},"throwException":{"description":"Throw exception on reaching to maximum occurence.","type":"boolean"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assertion unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","statement","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assertion"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"statement":{"type":"string","description":"The statement to be evaluated"},"errorMessage":{"type":"string","description":"The error message to be displayed if the assertion fails"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit schema (base)","type":"object","required":["application","flowchartId","input","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"execution"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"application":{"$schema":"http://json-schema.org/draft-07/schema#","title":"application schema","type":"object","required":["build","name","shortName","summary","version"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"shortName":{"description":"The short name of the application. e.g. qe","type":"string"},"summary":{"description":"Application's short description.","type":"string"},"version":{"description":"Application version. e.g. 5.3.5","type":"string"},"build":{"description":"Application build. e.g. VTST","type":"string"},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"},"isLicensed":{"description":"Whether licensing is present","type":"boolean"}}},"executable":{"$schema":"http://json-schema.org/draft-07/schema#","title":"executable schema","type":"object","required":["applicationId","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"applicationId":{"description":"_ids of the application this executable belongs to","type":"array","items":{"type":"string"}},"hasAdvancedComputeOptions":{"description":"Whether advanced compute options are present","type":"boolean"}}},"flavor":{"$schema":"http://json-schema.org/draft-07/schema#","title":"flavor schema","type":"object","required":["executableId","input","monitors","name","postProcessors","preProcessors","results"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"executableId":{"description":"_id of the executable this flavor belongs to","type":"string"},"executableName":{"description":"name of the executable this flavor belongs to","type":"string"},"applicationName":{"description":"name of the application this flavor belongs to","type":"string"},"input":{"title":"execution unit input schema","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input id item schema for physics-based simulation engines","type":"object","additionalProperties":false,"properties":{"templateId":{"type":"string"},"templateName":{"type":"string"},"name":{"description":"name of the resulting input file, if different than template name","type":"string"}}}},"supportedApplicationVersions":{"description":"list of application versions this flavor supports","type":"array","items":{"type":"string"}}}},"input":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"execution unit input item schema","type":"object","required":["rendered","isManuallyChanged","template"],"properties":{"template":{"$schema":"http://json-schema.org/draft-07/schema#","title":"template schema","type":"object","required":["applicationName","content","contextProviders","executableName","name"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"applicationName":{"type":"string"},"applicationVersion":{"type":"string"},"executableName":{"type":"string"},"contextProviders":{"type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"content":{"description":"Content of the template. e.g. &CONTROL calculation='scf' ...","type":"string"}}},"rendered":{"description":"Rendered content of the input file. e.g. &CONTROL calculation='scf' ...","type":"string"},"isManuallyChanged":{"type":"boolean","default":false}}}},"context":{"type":"array","items":{"type":"object","required":["name","isEdited","data"],"properties":{"name":{"type":"string","tsType":"ContextProviderNameEnum"},"isEdited":{"type":"boolean"},"data":{"type":"object"},"extraData":{"type":"object"}}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"assignment unit schema","type":"object","required":["flowchartId","monitors","name","operand","postProcessors","preProcessors","results","type","value"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"assignment"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"scope":{"type":"string"},"input":{"description":"Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment.","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"workflow unit input schema","type":"object","required":["scope","name"],"properties":{"scope":{"description":"Scope of the variable. e.g. 'global' or 'flowchart_id_2'","type":"string"},"name":{"description":"Name of the input data. e.g. total_energy","type":"string"}}}},"operand":{"description":"Name of the global variable. e.g. 'x'","type":"string"},"value":{"description":"Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression)","oneOf":[{"type":"string"},{"type":"boolean"},{"type":"number"}]}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"processing unit schema","type":"object","required":["flowchartId","inputData","monitors","name","operation","operationType","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"processing"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"operation":{"description":"Contains information about the operation used.","type":"string"},"operationType":{"description":"Contains information about the specific type of the operation used.","type":"string"},"inputData":{"description":"unit input (type to be specified by the child units)"}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"map unit schema","type":"object","required":["flowchartId","input","monitors","name","postProcessors","preProcessors","results","type","workflowId"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"map"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"},"workflowId":{"description":"Id of workflow to run inside map","type":"string"},"input":{"description":"Input information for map.","type":"object","required":["target"],"properties":{"target":{"description":"Name of the target variable to substitute using the values below. e.g. K_POINTS","type":"string"},"scope":{"description":"Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given.","type":"string"},"name":{"description":"Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given.","type":"string"},"values":{"description":"Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution","type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"object"}]}},"useValues":{"type":"boolean"}}}}},{"$schema":"http://json-schema.org/draft-07/schema#","title":"subworkflow unit schema","type":"object","required":["flowchartId","monitors","name","postProcessors","preProcessors","results","type"],"properties":{"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"preProcessors":{"description":"names of the pre-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"postProcessors":{"description":"names of the post-processors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"monitors":{"description":"names of the monitors for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"results":{"description":"names of the results for this calculation","type":"array","items":{"$schema":"http://json-schema.org/draft-07/schema#","title":"runtime item name object schema","type":"object","required":["name"],"properties":{"name":{"description":"The name of this item. e.g. scf_accuracy","type":"string"}}}},"tags":{"description":"entity tags","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"Status of the unit.","enum":["idle","active","warning","error","finished"]},"statusTrack":{"type":"array","items":{"type":"object","required":["trackedAt","status"],"properties":{"trackedAt":{"type":"number"},"status":{"type":"string"},"repetition":{"type":"number"}}}},"isDraft":{"type":"boolean"},"type":{"description":"type of the unit","type":"string","const":"subworkflow"},"head":{"description":"Whether this unit is the first one to be executed.","type":"boolean"},"flowchartId":{"description":"Identity of the unit in the workflow. Used to trace the execution flow of the workflow.","type":"string"},"next":{"description":"Next unit's flowchartId. If empty, the current unit is the last.","type":"string"},"enableRender":{"description":"Whether Rupy should attempt to use Jinja templating to add context variables into the unit","type":"boolean"}}}],"discriminator":{"propertyName":"type"},"required":["type"]}},"properties":{"description":"Array of characteristic properties calculated by this workflow (TODO: add enums)","type":"array","items":{"description":"property names, eg. `band_gaps`, `band_structure`","oneOf":[{"type":"string"},{"type":"object"}]}},"isUsingDataset":{"description":"Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab.","type":"boolean"},"workflows":{"description":"Array of workflows with the same schema as the current one.","type":"array","items":{"type":"object"}},"_id":{"description":"entity identity","type":"string"},"slug":{"description":"entity slug","type":"string"},"systemName":{"type":"string"},"schemaVersion":{"description":"entity's schema version. Used to distinct between different schemas.","type":"string","default":"2022.8.16"},"name":{"description":"entity name","type":"string"},"isDefault":{"description":"Identifies that entity is defaultable","type":"boolean","default":false},"metadata":{"type":"object"}}}] \ No newline at end of file diff --git a/dist/js/types.d.ts b/dist/js/types.d.ts index a83eae7eb..80fbd4cb7 100644 --- a/dist/js/types.d.ts +++ b/dist/js/types.d.ts @@ -3264,12 +3264,13 @@ export interface VASPNEBContextProviderSchema { * Set starting magnetization, can have values in the range [-1, +1]. */ export interface CollinearMagnetizationContextProviderSchema { - startingMagnetization?: { - atomicSpecies?: string; - value?: number; + startingMagnetization: { + atomicSpecies: string; + value: number; + index: number; }[]; - isTotalMagnetization?: boolean; - totalMagnetization?: number; + isTotalMagnetization: boolean; + totalMagnetization: number; } /** Schema dist/js/schema/context_providers_directory/enum.json */ export interface ContextProvidersDirectoryEnum { @@ -3424,6 +3425,8 @@ export interface NonCollinearMagnetizationContextProviderSchema { value?: number; }[]; isArbitrarySpinAngle?: boolean; + isArbitrarySpinDirection?: boolean; + lforcet?: boolean; spinAngles?: { index?: number; atomicSpecies?: string; @@ -3459,7 +3462,7 @@ export interface PointsGridDataProviderSchema { * @minItems 3 * @maxItems 3 */ - dimensions?: [number, number, number]; + dimensions: [number, number, number]; /** * @minItems 3 * @maxItems 3 @@ -3470,8 +3473,8 @@ export interface PointsGridDataProviderSchema { * @maxItems 3 */ reciprocalVectorRatios?: [number, number, number]; - gridMetricType?: "KPPRA" | "spacing"; - gridMetricValue?: number; + gridMetricType: "KPPRA" | "spacing"; + gridMetricValue: number; preferGridMetric?: boolean; } /** Schema dist/js/schema/context_providers_directory/points_path_data_provider.json */ @@ -3482,12 +3485,14 @@ export interface PointsGridDataProviderSchema { */ export type PointsPathDataProviderSchema = [ { - point?: string; - steps?: number; + point: string; + steps: number; + coordinates: number[]; }, ...{ - point?: string; - steps?: number; + point: string; + steps: number; + coordinates: number[]; }[] ]; /** Schema dist/js/schema/core/abstract/2d_data.json */ @@ -3685,7 +3690,7 @@ export interface NamedNodeSchema { /** * entity name */ - name?: string; + name: string; } /** * This interface was referenced by `NamedNodeSchema`'s JSON-Schema @@ -3714,7 +3719,7 @@ export interface NamedNodeInGroupSchema { /** * entity name */ - name?: string; + name: string; /** * Human-readable name of group of nodes */ @@ -3790,7 +3795,7 @@ export type LinkedListSchema = ({ /** * entity name */ - name?: string; + name: string; } | { /** * Flowchart ID of next node @@ -3807,7 +3812,7 @@ export type LinkedListSchema = ({ /** * entity name */ - name?: string; + name: string; /** * Human-readable name of group of nodes */ @@ -5048,7 +5053,7 @@ export interface HasConsistencyCheckHasMetadataNamedDefaultableInMemoryEntitySch /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -5091,7 +5096,7 @@ export interface NamedInMemoryEntitySchema { /** * entity name */ - name?: string; + name: string; } /** Schema dist/js/schema/in_memory_entity/named_defaultable.json */ export interface NamedDefaultableInMemoryEntitySchema { @@ -5111,7 +5116,7 @@ export interface NamedDefaultableInMemoryEntitySchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -5135,73 +5140,13 @@ export interface NamedDefaultableHasMetadataInMemoryEntitySchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; metadata?: {}; } -/** Schema dist/js/schema/in_memory_entity/named_defaultable_runtime_items.json */ -export interface NamedDefaultableRuntimeItemsInMemoryEntitySchema { - /** - * entity identity - */ - _id?: string; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * entity name - */ - name?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; -} /** Schema dist/js/schema/job/base.json */ export interface JobBaseSchema { /** @@ -5400,7 +5345,7 @@ export interface JobBaseSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -5519,37 +5464,236 @@ export interface JobSchema { * Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting */ subworkflows: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Array of characteristic properties calculated by this subworkflow + */ + properties?: string[]; + /** + * Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + */ + compute?: { + /** + * Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. + */ + queue: "D" | "OR" | "OF" | "OFplus" | "SR" | "SF" | "SFplus" | "GPOF" | "GP2OF" | "GP4OF" | "GPSF" | "GP2SF" | "GP4SF" | "OR4" | "OR8" | "OR16" | "SR4" | "SR8" | "SR16" | "GOF" | "G4OF" | "G8OF" | "GSF" | "G4SF" | "G8SF"; + /** + * number of nodes used for the job inside the RMS. + */ + nodes: number; + /** + * number of CPUs used for the job inside the RMS. + */ + ppn: number; + /** + * Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' + */ + timeLimit: string; + /** + * Convention to use when reasoning about time limits + */ + timeLimitType?: "per single attempt" | "compound"; + /** + * Job is allowed to restart on termination. + */ + isRestartable?: boolean; + /** + * Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. + */ + notify?: string; + /** + * Email address to notify about job execution. + */ + email?: string; + /** + * Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. + */ + maxCPU?: number; + /** + * Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + */ + arguments?: { + /** + * Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. + */ + nimage?: number; + /** + * Each image can be subpartitioned into `pools`, each taking care of a group of k-points. + */ + npools?: number; + /** + * Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). + */ + nband?: number; + /** + * In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. + */ + ntg?: number; + /** + * A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. + */ + ndiag?: number; + }; + /** + * Cluster where the job is executed. Optional on create. Required on job submission. + */ + cluster?: { + /** + * FQDN of the cluster. e.g. master-1-staging.exabyte.io + */ + fqdn?: string; + /** + * Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io + */ + jid?: string; + }; + /** + * Computation error. Optional. Appears only if something happens on jobs execution. + */ + errors?: { + /** + * Domain of the error appearance (internal). + */ + domain?: "rupy" | "alfred" | "celim" | "webapp"; + /** + * Should be a short, unique, machine-readable error code string. e.g. FileNotFound + */ + reason?: string; + /** + * Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' + */ + message?: string; + /** + * Full machine-readable error traceback. e.g. FileNotFound + */ + traceback?: string; + }[]; + /** + * A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + */ + excludeFilesPattern?: string; + }; /** * Contains the Units of the subworkflow */ units: ({ /** - * type of the unit + * entity identity */ - type: "io"; - subtype: "input" | "output" | "dataFrame"; - source: "api" | "db" | "object_storage"; - input: ({ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { /** - * rest API endpoint + * The name of this item. e.g. scf_accuracy */ - endpoint: string; + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { /** - * rest API endpoint options + * The name of this item. e.g. scf_accuracy */ - endpoint_options: {}; + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { /** - * the name of the variable in local scope to save the data under + * The name of this item. e.g. scf_accuracy */ - name?: string; - [k: string]: unknown; - } | ({ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "io"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + subtype: "input" | "output" | "dataFrame"; + source: "api" | "db" | "object_storage"; + input: ({ + type: "db_ids"; /** * IDs of item to retrieve from db */ ids: string[]; - [k: string]: unknown; } | { + type: "db_collection"; /** * db collection name */ @@ -5558,8 +5702,8 @@ export interface JobSchema { * whether the result should be saved as draft */ draft: boolean; - [k: string]: unknown; - }) | { + } | { + type: "object_storage"; objectData: { /** * Object storage container for the file @@ -5602,38 +5746,12 @@ export interface JobSchema { * What kind of file this is, e.g. image / text */ filetype?: string; - [k: string]: unknown; })[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -5643,6 +5761,10 @@ export interface JobSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -5650,54 +5772,73 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "reduce"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * corresponding map unit flowchart ID */ @@ -5715,36 +5856,11 @@ export interface JobSchema { */ arguments: string[]; }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -5754,6 +5870,10 @@ export interface JobSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -5761,54 +5881,73 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "condition"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Input information for condition. */ @@ -5842,36 +5981,11 @@ export interface JobSchema { * Throw exception on reaching to maximum occurence. */ throwException?: boolean; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -5881,6 +5995,10 @@ export interface JobSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -5888,75 +6006,57 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "assertion"; - /** - * The statement to be evaluated - */ - statement: string; - /** - * The error message to be displayed if the assertion fails - */ - errorMessage?: string; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -5973,7 +6073,19 @@ export interface JobSchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; + /** + * The statement to be evaluated + */ + statement: string; + /** + * The error message to be displayed if the assertion fails + */ + errorMessage?: string; + } | { + /** + * entity identity + */ + _id?: string; /** * entity slug */ @@ -5983,6 +6095,10 @@ export interface JobSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -5990,79 +6106,74 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "execution"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; application: { - /** - * The short name of the application. e.g. qe - */ - shortName?: string; - /** - * Application's short description. - */ - summary?: string; - /** - * Application version. e.g. 5.3.5 - */ - version?: string; - /** - * Application build. e.g. VTST - */ - build?: string; - /** - * Whether advanced compute options are present - */ - hasAdvancedComputeOptions?: boolean; - /** - * Whether licensing is present - */ - isLicensed?: boolean; /** * entity identity */ @@ -6079,26 +6190,37 @@ export interface JobSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; - }; - executable?: { /** - * The name of the executable. e.g. pw.x + * The short name of the application. e.g. qe */ - name: string; + shortName: string; /** - * _ids of the application this executable belongs to + * Application's short description. + */ + summary: string; + /** + * Application version. e.g. 5.3.5 + */ + version: string; + /** + * Application build. e.g. VTST */ - applicationId?: string[]; + build: string; /** * Whether advanced compute options are present */ hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; + }; + executable?: { /** * entity identity */ @@ -6112,6 +6234,10 @@ export interface JobSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -6119,65 +6245,49 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - flavor?: { - /** - * _id of the executable this flavor belongs to - */ - executableId?: string; - /** - * name of the executable this flavor belongs to - */ - executableName?: string; + }[]; /** - * name of the application this flavor belongs to + * _ids of the application this executable belongs to */ - applicationName?: string; - input?: { - templateId?: string; - templateName?: string; - /** - * name of the resulting input file, if different than template name - */ - name?: string; - }[]; + applicationId: string[]; /** - * list of application versions this flavor supports + * Whether advanced compute options are present */ - supportedApplicationVersions?: string[]; + hasAdvancedComputeOptions?: boolean; + }; + flavor?: { /** * entity identity */ @@ -6194,7 +6304,7 @@ export interface JobSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -6202,76 +6312,114 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; + /** + * _id of the executable this flavor belongs to + */ + executableId: string; + /** + * name of the executable this flavor belongs to + */ + executableName?: string; + /** + * name of the application this flavor belongs to + */ + applicationName?: string; + input: { + templateId?: string; + templateName?: string; + /** + * name of the resulting input file, if different than template name + */ + name?: string; + }[]; + /** + * list of application versions this flavor supports + */ + supportedApplicationVersions?: string[]; }; - /** - * unit input (type to be specified by the application's execution unit) - */ input: { - [k: string]: unknown; - }; + template: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * Content of the template. e.g. &CONTROL calculation='scf' ... + */ + content: string; + }; + /** + * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + */ + rendered: string; + isManuallyChanged: boolean; + }[]; + context?: { + name: ContextProviderNameEnum; + isEdited: boolean; + data: {}; + extraData?: {}; + }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -6281,6 +6429,10 @@ export interface JobSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -6288,54 +6440,74 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "assignment"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + scope?: string; /** * Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. */ @@ -6357,36 +6529,11 @@ export interface JobSchema { * Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) */ value: string | boolean | number; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -6396,6 +6543,10 @@ export interface JobSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -6403,82 +6554,57 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - scope?: string; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "processing"; - /** - * Contains information about the operation used. - */ - operation: string; - /** - * Contains information about the specific type of the operation used. - */ - operationType: string; - /** - * unit input (type to be specified by the child units) - */ - inputData: { - [k: string]: unknown; - }; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -6495,83 +6621,37 @@ export interface JobSchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; /** - * entity slug + * Contains information about the operation used. */ - slug?: string; - systemName?: string; + operation: string; /** - * entity's schema version. Used to distinct between different schemas. + * Contains information about the specific type of the operation used. */ - schemaVersion?: string; + operationType: string; /** - * Identifies that entity is defaultable + * unit input (type to be specified by the child units) */ - isDefault?: boolean; + inputData: { + [k: string]: unknown; + }; + })[]; + model: { /** - * names of the pre-processors for this calculation + * general type of the model, eg. `dft` */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + type: string; /** - * names of the post-processors for this calculation + * general subtype of the model, eg. `lda` */ - postProcessors?: ({ + subtype: string; + method: { /** - * The name of this item. e.g. scf_accuracy + * general type of this method, eg. `pseudopotential` */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ + type: string; /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * entity tags - */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; - })[]; - model: { - /** - * general type of the model, eg. `dft` - */ - type: string; - /** - * general subtype of the model, eg. `lda` - */ - subtype: string; - method: { - /** - * general type of this method, eg. `pseudopotential` - */ - type: string; - /** - * general subtype of this method, eg. `ultra-soft` + * general subtype of this method, eg. `ultra-soft` */ subtype: string; /** @@ -6587,204 +6667,161 @@ export interface JobSchema { }; application: { /** - * The short name of the application. e.g. qe + * entity identity */ - shortName?: string; + _id?: string; /** - * Application's short description. + * entity slug */ - summary?: string; + slug?: string; + systemName?: string; /** - * Application version. e.g. 5.3.5 + * entity's schema version. Used to distinct between different schemas. */ - version?: string; + schemaVersion?: string; /** - * Application build. e.g. VTST + * entity name */ - build?: string; + name: string; /** - * Whether advanced compute options are present + * Identifies that entity is defaultable */ - hasAdvancedComputeOptions?: boolean; + isDefault?: boolean; /** - * Whether licensing is present + * The short name of the application. e.g. qe */ - isLicensed?: boolean; + shortName: string; /** - * entity identity + * Application's short description. */ - _id?: string; + summary: string; /** - * entity slug + * Application version. e.g. 5.3.5 */ - slug?: string; - systemName?: string; + version: string; /** - * entity's schema version. Used to distinct between different schemas. + * Application build. e.g. VTST */ - schemaVersion?: string; + build: string; /** - * entity name + * Whether advanced compute options are present */ - name?: string; + hasAdvancedComputeOptions?: boolean; /** - * Identifies that entity is defaultable + * Whether licensing is present */ - isDefault?: boolean; - [k: string]: unknown; + isLicensed?: boolean; }; /** * Defines whether to store the results/properties extracted in this unit to properties collection */ isDraft?: boolean; + }[]; + /** + * Contains the Units of the Workflow + */ + units: ({ /** - * subworkflow identity + * entity identity */ _id?: string; /** - * Human-readable name of the subworkflow. e.g. Total-energy + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name */ name: string; /** - * Array of characteristic properties calculated by this subworkflow + * Identifies that entity is defaultable */ - properties?: string[]; + isDefault?: boolean; /** - * Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + * names of the pre-processors for this calculation */ - compute?: { - /** - * Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. - */ - queue: "D" | "OR" | "OF" | "OFplus" | "SR" | "SF" | "SFplus" | "GPOF" | "GP2OF" | "GP4OF" | "GPSF" | "GP2SF" | "GP4SF" | "OR4" | "OR8" | "OR16" | "SR4" | "SR8" | "SR16" | "GOF" | "G4OF" | "G8OF" | "GSF" | "G4SF" | "G8SF"; - /** - * number of nodes used for the job inside the RMS. - */ - nodes: number; - /** - * number of CPUs used for the job inside the RMS. - */ - ppn: number; - /** - * Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' - */ - timeLimit: string; - /** - * Convention to use when reasoning about time limits - */ - timeLimitType?: "per single attempt" | "compound"; - /** - * Job is allowed to restart on termination. - */ - isRestartable?: boolean; - /** - * Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. - */ - notify?: string; - /** - * Email address to notify about job execution. - */ - email?: string; - /** - * Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. - */ - maxCPU?: number; + preProcessors: { /** - * Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + * The name of this item. e.g. scf_accuracy */ - arguments?: { - /** - * Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. - */ - nimage?: number; - /** - * Each image can be subpartitioned into `pools`, each taking care of a group of k-points. - */ - npools?: number; - /** - * Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). - */ - nband?: number; - /** - * In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. - */ - ntg?: number; - /** - * A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. - */ - ndiag?: number; - }; + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { /** - * Cluster where the job is executed. Optional on create. Required on job submission. + * The name of this item. e.g. scf_accuracy */ - cluster?: { - /** - * FQDN of the cluster. e.g. master-1-staging.exabyte.io - */ - fqdn?: string; - /** - * Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io - */ - jid?: string; - }; + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { /** - * Computation error. Optional. Appears only if something happens on jobs execution. + * The name of this item. e.g. scf_accuracy */ - errors?: { - /** - * Domain of the error appearance (internal). - */ - domain?: "rupy" | "alfred" | "celim" | "webapp"; - /** - * Should be a short, unique, machine-readable error code string. e.g. FileNotFound - */ - reason?: string; - /** - * Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' - */ - message?: string; - /** - * Full machine-readable error traceback. e.g. FileNotFound - */ - traceback?: string; - }[]; + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { /** - * A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + * The name of this item. e.g. scf_accuracy */ - excludeFilesPattern?: string; - }; - }[]; - /** - * Contains the Units of the Workflow - */ - units: ({ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; /** * type of the unit */ type: "io"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; subtype: "input" | "output" | "dataFrame"; source: "api" | "db" | "object_storage"; input: ({ - /** - * rest API endpoint - */ - endpoint: string; - /** - * rest API endpoint options - */ - endpoint_options: {}; - /** - * the name of the variable in local scope to save the data under - */ - name?: string; - [k: string]: unknown; - } | ({ + type: "db_ids"; /** * IDs of item to retrieve from db */ ids: string[]; - [k: string]: unknown; } | { + type: "db_collection"; /** * db collection name */ @@ -6793,8 +6830,8 @@ export interface JobSchema { * whether the result should be saved as draft */ draft: boolean; - [k: string]: unknown; - }) | { + } | { + type: "object_storage"; objectData: { /** * Object storage container for the file @@ -6837,38 +6874,12 @@ export interface JobSchema { * What kind of file this is, e.g. image / text */ filetype?: string; - [k: string]: unknown; })[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -6878,6 +6889,10 @@ export interface JobSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -6885,54 +6900,73 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "reduce"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * corresponding map unit flowchart ID */ @@ -6950,36 +6984,11 @@ export interface JobSchema { */ arguments: string[]; }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -6989,6 +6998,10 @@ export interface JobSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -6996,54 +7009,73 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "condition"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Input information for condition. */ @@ -7077,36 +7109,11 @@ export interface JobSchema { * Throw exception on reaching to maximum occurence. */ throwException?: boolean; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -7116,6 +7123,10 @@ export interface JobSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -7123,75 +7134,57 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "assertion"; - /** - * The statement to be evaluated - */ - statement: string; - /** - * The error message to be displayed if the assertion fails - */ - errorMessage?: string; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -7208,7 +7201,19 @@ export interface JobSchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; + /** + * The statement to be evaluated + */ + statement: string; + /** + * The error message to be displayed if the assertion fails + */ + errorMessage?: string; + } | { + /** + * entity identity + */ + _id?: string; /** * entity slug */ @@ -7218,6 +7223,10 @@ export interface JobSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -7225,71 +7234,111 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "execution"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; application: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; /** * The short name of the application. e.g. qe */ - shortName?: string; + shortName: string; /** * Application's short description. */ - summary?: string; + summary: string; /** * Application version. e.g. 5.3.5 */ - version?: string; + version: string; /** * Application build. e.g. VTST */ - build?: string; + build: string; /** * Whether advanced compute options are present */ @@ -7298,6 +7347,8 @@ export interface JobSchema { * Whether licensing is present */ isLicensed?: boolean; + }; + executable?: { /** * entity identity */ @@ -7314,26 +7365,57 @@ export interface JobSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; - }; - executable?: { /** - * The name of the executable. e.g. pw.x + * names of the pre-processors for this calculation */ - name: string; + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * _ids of the application this executable belongs to + * names of the post-processors for this calculation */ - applicationId?: string[]; - /** - * Whether advanced compute options are present + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * _ids of the application this executable belongs to + */ + applicationId: string[]; + /** + * Whether advanced compute options are present */ hasAdvancedComputeOptions?: boolean; + }; + flavor?: { /** * entity identity */ @@ -7347,6 +7429,10 @@ export interface JobSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -7354,45 +7440,43 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - flavor?: { + }[]; /** * _id of the executable this flavor belongs to */ - executableId?: string; + executableId: string; /** * name of the executable this flavor belongs to */ @@ -7401,7 +7485,7 @@ export interface JobSchema { * name of the application this flavor belongs to */ applicationName?: string; - input?: { + input: { templateId?: string; templateName?: string; /** @@ -7413,100 +7497,57 @@ export interface JobSchema { * list of application versions this flavor supports */ supportedApplicationVersions?: string[]; - /** - * entity identity - */ - _id?: string; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * entity name - */ - name?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ + }; + input: { + template: { /** - * The name of this item. e.g. scf_accuracy + * entity identity */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ + _id?: string; /** - * The name of this item. e.g. scf_accuracy + * entity slug */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ + slug?: string; + systemName?: string; /** - * The name of this item. e.g. scf_accuracy + * entity's schema version. Used to distinct between different schemas. */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ + schemaVersion?: string; /** - * The name of this item. e.g. scf_accuracy + * entity name */ name: string; - } | string)[]; - }; - /** - * unit input (type to be specified by the application's execution unit) - */ - input: { - [k: string]: unknown; - }; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * Content of the template. e.g. &CONTROL calculation='scf' ... + */ + content: string; + }; + /** + * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + */ + rendered: string; + isManuallyChanged: boolean; + }[]; + context?: { + name: ContextProviderNameEnum; + isEdited: boolean; + data: {}; + extraData?: {}; + }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -7516,6 +7557,10 @@ export interface JobSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -7523,54 +7568,74 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "assignment"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + scope?: string; /** * Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. */ @@ -7592,36 +7657,11 @@ export interface JobSchema { * Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) */ value: string | boolean | number; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -7631,6 +7671,10 @@ export interface JobSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -7638,55 +7682,73 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - scope?: string; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "processing"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Contains information about the operation used. */ @@ -7701,36 +7763,11 @@ export interface JobSchema { inputData: { [k: string]: unknown; }; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -7740,6 +7777,10 @@ export interface JobSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -7747,54 +7788,73 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "map"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Id of workflow to run inside map */ @@ -7821,36 +7881,11 @@ export interface JobSchema { values?: (string | number | {})[]; useValues?: boolean; }; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -7860,6 +7895,10 @@ export interface JobSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -7867,67 +7906,57 @@ export interface JobSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "subworkflow"; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -7944,66 +7973,6 @@ export interface JobSchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * entity tags - */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; })[]; /** * Array of characteristic properties calculated by this workflow (TODO: add enums) @@ -8033,7 +8002,7 @@ export interface JobSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -8236,7 +8205,7 @@ export interface JobSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -8503,6 +8472,15 @@ export interface MaterialSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -8519,12 +8497,11 @@ export interface MaterialSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; } /** Schema dist/js/schema/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json */ /** @@ -8805,6 +8782,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -8821,12 +8807,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -9078,6 +9063,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -9094,12 +9088,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -9399,6 +9392,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -9415,12 +9417,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -9672,6 +9673,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -9688,12 +9698,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -9982,6 +9991,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -9998,12 +10016,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -10255,6 +10272,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -10271,12 +10297,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -10576,6 +10601,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -10592,12 +10626,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -10849,6 +10882,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -10865,12 +10907,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -11160,6 +11201,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -11176,12 +11226,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -11433,6 +11482,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -11449,12 +11507,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -11754,6 +11811,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -11770,12 +11836,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -12027,6 +12092,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -12043,12 +12117,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -12337,6 +12410,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -12353,12 +12435,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -12610,6 +12691,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -12626,12 +12716,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -12931,6 +13020,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -12947,12 +13045,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -13204,6 +13301,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -13220,12 +13326,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -13492,6 +13597,15 @@ export interface InterfaceConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -13508,12 +13622,11 @@ export interface InterfaceConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -13821,6 +13934,15 @@ export interface GrainBoundaryLinearConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -13837,12 +13959,11 @@ export interface GrainBoundaryLinearConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -14094,6 +14215,15 @@ export interface GrainBoundaryLinearConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -14110,12 +14240,11 @@ export interface GrainBoundaryLinearConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -14415,6 +14544,15 @@ export interface GrainBoundaryLinearConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -14431,12 +14569,11 @@ export interface GrainBoundaryLinearConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -14688,6 +14825,15 @@ export interface GrainBoundaryLinearConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -14704,12 +14850,11 @@ export interface GrainBoundaryLinearConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -14998,6 +15143,15 @@ export interface GrainBoundaryLinearConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -15014,12 +15168,11 @@ export interface GrainBoundaryLinearConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -15271,6 +15424,15 @@ export interface GrainBoundaryLinearConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -15287,12 +15449,11 @@ export interface GrainBoundaryLinearConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -15592,6 +15753,15 @@ export interface GrainBoundaryLinearConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -15608,12 +15778,11 @@ export interface GrainBoundaryLinearConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -15865,6 +16034,15 @@ export interface GrainBoundaryLinearConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -15881,12 +16059,11 @@ export interface GrainBoundaryLinearConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -16215,6 +16392,15 @@ export interface AdatomDefectConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -16231,12 +16417,11 @@ export interface AdatomDefectConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -16488,6 +16673,15 @@ export interface AdatomDefectConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -16504,12 +16698,11 @@ export interface AdatomDefectConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -16768,6 +16961,15 @@ export interface AdatomDefectConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -16784,12 +16986,11 @@ export interface AdatomDefectConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * @minItems 3 @@ -17050,6 +17251,15 @@ export interface AdatomDefectConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -17066,12 +17276,11 @@ export interface AdatomDefectConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -17376,6 +17585,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -17392,12 +17610,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -17649,6 +17866,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -17665,12 +17891,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -17970,6 +18195,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -17986,12 +18220,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -18243,6 +18476,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -18259,12 +18501,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -18553,6 +18794,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -18569,12 +18819,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -18826,6 +19075,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -18842,12 +19100,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -19147,6 +19404,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -19163,12 +19429,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -19420,6 +19685,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -19436,12 +19710,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -19731,6 +20004,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -19747,12 +20029,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -20004,6 +20285,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -20020,12 +20310,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -20325,6 +20614,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -20341,12 +20639,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -20598,6 +20895,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -20614,12 +20920,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -20908,6 +21213,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -20924,12 +21238,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -21181,6 +21494,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -21197,12 +21519,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -21502,6 +21823,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -21518,12 +21848,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -21775,6 +22104,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -21791,12 +22129,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -22063,6 +22400,15 @@ export interface GrainBoundaryPlanarConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -22079,12 +22425,11 @@ export interface GrainBoundaryPlanarConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -22386,6 +22731,15 @@ export interface IslandDefectConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -22402,12 +22756,11 @@ export interface IslandDefectConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -22659,6 +23012,15 @@ export interface IslandDefectConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -22675,12 +23037,11 @@ export interface IslandDefectConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -22975,6 +23336,15 @@ export interface IslandDefectConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -22991,12 +23361,11 @@ export interface IslandDefectConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -23248,6 +23617,15 @@ export interface IslandDefectConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -23264,12 +23642,11 @@ export interface IslandDefectConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -23528,6 +23905,15 @@ export interface IslandDefectConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -23544,12 +23930,11 @@ export interface IslandDefectConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Combined schema for all coordinate condition types @@ -23858,6 +24243,15 @@ export interface IslandDefectConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -23874,12 +24268,11 @@ export interface IslandDefectConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -24178,6 +24571,15 @@ export interface TerraceDefectConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -24194,12 +24596,11 @@ export interface TerraceDefectConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -24451,6 +24852,15 @@ export interface TerraceDefectConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -24467,12 +24877,11 @@ export interface TerraceDefectConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -24767,6 +25176,15 @@ export interface TerraceDefectConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -24783,12 +25201,11 @@ export interface TerraceDefectConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -25040,6 +25457,15 @@ export interface TerraceDefectConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -25056,12 +25482,11 @@ export interface TerraceDefectConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -25320,6 +25745,15 @@ export interface TerraceDefectConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -25336,12 +25770,11 @@ export interface TerraceDefectConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Combined schema for all coordinate condition types @@ -25650,6 +26083,15 @@ export interface TerraceDefectConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -25666,12 +26108,11 @@ export interface TerraceDefectConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -25943,6 +26384,15 @@ export interface PointDefectBaseConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -25959,12 +26409,11 @@ export interface PointDefectBaseConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }, unknown ]; @@ -26216,6 +26665,15 @@ export interface InterstitialPointDefectSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -26232,12 +26690,11 @@ export interface InterstitialPointDefectSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }, { /** @@ -26476,6 +26933,15 @@ export interface InterstitialPointDefectSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -26492,12 +26958,11 @@ export interface InterstitialPointDefectSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * @minItems 3 @@ -26762,6 +27227,15 @@ export interface SubstitutionalPointDefectSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -26778,12 +27252,11 @@ export interface SubstitutionalPointDefectSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }, { /** @@ -27022,6 +27495,15 @@ export interface SubstitutionalPointDefectSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -27038,12 +27520,11 @@ export interface SubstitutionalPointDefectSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * @minItems 3 @@ -27308,6 +27789,15 @@ export interface VacancyPointDefectSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -27324,12 +27814,11 @@ export interface VacancyPointDefectSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }, { /** @@ -27580,6 +28069,15 @@ export interface IdealCrystalSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -27596,12 +28094,11 @@ export interface IdealCrystalSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; } /** Schema dist/js/schema/materials_category/pristine_structures/two_dimensional/nanoribbon.json */ /** @@ -27897,6 +28394,15 @@ export interface NanoribbonConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -27913,12 +28419,11 @@ export interface NanoribbonConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -28170,6 +28675,15 @@ export interface NanoribbonConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -28186,12 +28700,11 @@ export interface NanoribbonConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -28458,6 +28971,15 @@ export interface NanoribbonConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -28474,12 +28996,11 @@ export interface NanoribbonConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -28789,6 +29310,15 @@ export interface NanoTapeConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -28805,12 +29335,11 @@ export interface NanoTapeConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -29062,6 +29591,15 @@ export interface NanoTapeConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -29078,12 +29616,11 @@ export interface NanoTapeConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -29376,6 +29913,15 @@ export interface SlabConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -29392,12 +29938,11 @@ export interface SlabConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -29649,6 +30194,15 @@ export interface SlabConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -29665,12 +30219,11 @@ export interface SlabConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -29975,6 +30528,15 @@ export interface SlabStrainedSupercellConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -29991,12 +30553,11 @@ export interface SlabStrainedSupercellConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -30248,6 +30809,15 @@ export interface SlabStrainedSupercellConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -30264,12 +30834,11 @@ export interface SlabStrainedSupercellConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -30533,6 +31102,15 @@ export interface PassivationConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -30549,12 +31127,11 @@ export interface PassivationConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; } | { /** * A crystal structure, referencing the base material schema @@ -30792,6 +31369,15 @@ export interface PassivationConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -30808,12 +31394,11 @@ export interface PassivationConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * @minItems 3 @@ -31062,6 +31647,15 @@ export interface PassivationConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -31078,12 +31672,11 @@ export interface PassivationConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; } | { /** * A crystal structure, referencing the base material schema @@ -31321,6 +31914,15 @@ export interface PassivationConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -31337,12 +31939,11 @@ export interface PassivationConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * @minItems 3 @@ -31591,6 +32192,15 @@ export interface PassivationConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -31607,12 +32217,11 @@ export interface PassivationConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; } | { /** * A crystal structure, referencing the base material schema @@ -31850,6 +32459,15 @@ export interface PassivationConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -31866,12 +32484,11 @@ export interface PassivationConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * @minItems 3 @@ -32190,6 +32807,15 @@ export interface CrystalSiteSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -32206,12 +32832,11 @@ export interface CrystalSiteSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * @minItems 3 @@ -32460,6 +33085,15 @@ export interface PointDefectSiteSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -32476,12 +33110,11 @@ export interface PointDefectSiteSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * @minItems 3 @@ -32738,6 +33371,15 @@ export interface VoidRegionSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -32754,12 +33396,11 @@ export interface VoidRegionSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Combined schema for all coordinate condition types @@ -33054,6 +33695,15 @@ export interface CrystalSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -33070,12 +33720,11 @@ export interface CrystalSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; } /** Schema dist/js/schema/materials_category_components/entities/core/three_dimensional/void.json */ /** @@ -33392,6 +34041,15 @@ export interface VacuumConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -33408,12 +34066,11 @@ export interface VacuumConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } /** Schema dist/js/schema/materials_category_components/entities/core/zero_dimensional/atom.json */ @@ -33681,6 +34338,15 @@ export interface CrystalLatticeLinesSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -33697,12 +34363,11 @@ export interface CrystalLatticeLinesSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -33991,6 +34656,15 @@ export interface CrystalLatticeLinesUniqueRepeatedSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -34007,12 +34681,11 @@ export interface CrystalLatticeLinesUniqueRepeatedSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -34260,6 +34933,15 @@ export interface CrystalLatticeBaseSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -34276,12 +34958,11 @@ export interface CrystalLatticeBaseSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -34537,6 +35218,15 @@ export interface NonUniformlyStrainedCrystalConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -34553,12 +35243,11 @@ export interface NonUniformlyStrainedCrystalConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * @minItems 3 @@ -34807,6 +35496,15 @@ export interface UniformlyStrainedCrystalConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -34823,12 +35521,11 @@ export interface UniformlyStrainedCrystalConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Percentage of uniform strain to apply to the crystal structure @@ -35076,6 +35773,15 @@ export interface SupercellConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -35092,12 +35798,11 @@ export interface SupercellConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * @minItems 3 @@ -35380,6 +36085,15 @@ export interface AtomicLayersSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -35396,12 +36110,11 @@ export interface AtomicLayersSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -35683,6 +36396,15 @@ export interface AtomicLayersUniqueSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -35699,12 +36421,11 @@ export interface AtomicLayersUniqueSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -35976,6 +36697,15 @@ export interface AtomicLayersUniqueRepeatedSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -35992,12 +36722,11 @@ export interface AtomicLayersUniqueRepeatedSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -36252,6 +36981,15 @@ export interface CrystalLatticePlanesSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -36268,12 +37006,11 @@ export interface CrystalLatticePlanesSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -36557,6 +37294,15 @@ export interface SlabStackConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -36573,12 +37319,11 @@ export interface SlabStackConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * Use the conventional cell for the crystal structure @@ -36830,6 +37575,15 @@ export interface SlabStackConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -36846,12 +37600,11 @@ export interface SlabStackConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -37119,6 +37872,15 @@ export interface SlabStackConfigurationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -37135,12 +37897,11 @@ export interface SlabStackConfigurationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; } ]; @@ -37440,6 +38201,15 @@ export interface PerturbationSchema { */ message: string; }[]; + metadata?: { + boundaryConditions?: { + /** + * If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + */ + type: "pbc" | "bc1" | "bc2" | "bc3"; + offset: number; + }; + }; /** * entity identity */ @@ -37456,12 +38226,11 @@ export interface PerturbationSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - metadata?: {}; }; /** * A function that defines the perturbation (delta in coordinates) to be applied to the atomic coordinates. @@ -37570,7 +38339,7 @@ export interface CategorizedMethod { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -37583,7 +38352,7 @@ export interface CategorizedMethod { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -37684,7 +38453,7 @@ export interface CategorizedUnitMethod { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -42090,7 +42859,7 @@ export interface UnitMethodConjugateGradient { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -42186,7 +42955,7 @@ export interface UnitMethodDavidsonSchema { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -42542,7 +43311,7 @@ export interface UnitMethodRegression { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -42640,7 +43409,7 @@ export interface UnitMethodAoDunning { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -42749,7 +43518,7 @@ export interface UnitMethodAoOther { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -42854,7 +43623,7 @@ export interface UnitMethodAoPople { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -43264,7 +44033,7 @@ export interface UnitMethodPseudopotential { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -43360,7 +44129,7 @@ export interface UnitMethodPlaneWave { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -43456,7 +44225,7 @@ export interface UnitMethodSmearing { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -43549,7 +44318,7 @@ export interface UnitMethodTetrahedron { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -43644,7 +44413,7 @@ export interface CategorizedModel { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -43657,7 +44426,7 @@ export interface CategorizedModel { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -43812,7 +44581,7 @@ export interface CategorizedModel { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -44039,7 +44808,7 @@ export interface ModelWithoutMethodSchemaBase { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -45406,7 +46175,7 @@ export interface ModelDoubleHybridFunctional { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -45573,7 +46342,7 @@ export interface ModelGeneralizedGradientApproximation { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -45745,7 +46514,7 @@ export interface ModelGwApproximation { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -45912,7 +46681,7 @@ export interface ModelHybridFunctional { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -46079,7 +46848,7 @@ export interface ModelLocalDensityApproximation { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -46369,7 +47138,7 @@ export interface ModelMetaGeneralizedGradientApproximation { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -46529,7 +47298,7 @@ export interface ModelRegression { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ @@ -46570,7 +47339,7 @@ export interface ProjectSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -47298,37 +48067,236 @@ export interface WorkflowPropertySchema { * Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting */ subworkflows: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Array of characteristic properties calculated by this subworkflow + */ + properties?: string[]; + /** + * Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + */ + compute?: { + /** + * Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. + */ + queue: "D" | "OR" | "OF" | "OFplus" | "SR" | "SF" | "SFplus" | "GPOF" | "GP2OF" | "GP4OF" | "GPSF" | "GP2SF" | "GP4SF" | "OR4" | "OR8" | "OR16" | "SR4" | "SR8" | "SR16" | "GOF" | "G4OF" | "G8OF" | "GSF" | "G4SF" | "G8SF"; + /** + * number of nodes used for the job inside the RMS. + */ + nodes: number; + /** + * number of CPUs used for the job inside the RMS. + */ + ppn: number; + /** + * Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' + */ + timeLimit: string; + /** + * Convention to use when reasoning about time limits + */ + timeLimitType?: "per single attempt" | "compound"; + /** + * Job is allowed to restart on termination. + */ + isRestartable?: boolean; + /** + * Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. + */ + notify?: string; + /** + * Email address to notify about job execution. + */ + email?: string; + /** + * Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. + */ + maxCPU?: number; + /** + * Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + */ + arguments?: { + /** + * Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. + */ + nimage?: number; + /** + * Each image can be subpartitioned into `pools`, each taking care of a group of k-points. + */ + npools?: number; + /** + * Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). + */ + nband?: number; + /** + * In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. + */ + ntg?: number; + /** + * A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. + */ + ndiag?: number; + }; + /** + * Cluster where the job is executed. Optional on create. Required on job submission. + */ + cluster?: { + /** + * FQDN of the cluster. e.g. master-1-staging.exabyte.io + */ + fqdn?: string; + /** + * Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io + */ + jid?: string; + }; + /** + * Computation error. Optional. Appears only if something happens on jobs execution. + */ + errors?: { + /** + * Domain of the error appearance (internal). + */ + domain?: "rupy" | "alfred" | "celim" | "webapp"; + /** + * Should be a short, unique, machine-readable error code string. e.g. FileNotFound + */ + reason?: string; + /** + * Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' + */ + message?: string; + /** + * Full machine-readable error traceback. e.g. FileNotFound + */ + traceback?: string; + }[]; + /** + * A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + */ + excludeFilesPattern?: string; + }; /** * Contains the Units of the subworkflow */ units: ({ /** - * type of the unit + * entity identity */ - type: "io"; - subtype: "input" | "output" | "dataFrame"; - source: "api" | "db" | "object_storage"; - input: ({ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { /** - * rest API endpoint + * The name of this item. e.g. scf_accuracy */ - endpoint: string; + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { /** - * rest API endpoint options + * The name of this item. e.g. scf_accuracy */ - endpoint_options: {}; + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { /** - * the name of the variable in local scope to save the data under + * The name of this item. e.g. scf_accuracy */ - name?: string; - [k: string]: unknown; - } | ({ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "io"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + subtype: "input" | "output" | "dataFrame"; + source: "api" | "db" | "object_storage"; + input: ({ + type: "db_ids"; /** * IDs of item to retrieve from db */ ids: string[]; - [k: string]: unknown; } | { + type: "db_collection"; /** * db collection name */ @@ -47337,8 +48305,8 @@ export interface WorkflowPropertySchema { * whether the result should be saved as draft */ draft: boolean; - [k: string]: unknown; - }) | { + } | { + type: "object_storage"; objectData: { /** * Object storage container for the file @@ -47381,38 +48349,12 @@ export interface WorkflowPropertySchema { * What kind of file this is, e.g. image / text */ filetype?: string; - [k: string]: unknown; })[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -47422,6 +48364,10 @@ export interface WorkflowPropertySchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -47429,54 +48375,73 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "reduce"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * corresponding map unit flowchart ID */ @@ -47494,36 +48459,11 @@ export interface WorkflowPropertySchema { */ arguments: string[]; }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -47533,6 +48473,10 @@ export interface WorkflowPropertySchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -47540,54 +48484,73 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "condition"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Input information for condition. */ @@ -47621,36 +48584,11 @@ export interface WorkflowPropertySchema { * Throw exception on reaching to maximum occurence. */ throwException?: boolean; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -47660,6 +48598,10 @@ export interface WorkflowPropertySchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -47667,75 +48609,57 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "assertion"; - /** - * The statement to be evaluated - */ - statement: string; - /** - * The error message to be displayed if the assertion fails - */ - errorMessage?: string; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -47752,7 +48676,19 @@ export interface WorkflowPropertySchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; + /** + * The statement to be evaluated + */ + statement: string; + /** + * The error message to be displayed if the assertion fails + */ + errorMessage?: string; + } | { + /** + * entity identity + */ + _id?: string; /** * entity slug */ @@ -47762,6 +48698,10 @@ export interface WorkflowPropertySchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -47769,79 +48709,74 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "execution"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; application: { - /** - * The short name of the application. e.g. qe - */ - shortName?: string; - /** - * Application's short description. - */ - summary?: string; - /** - * Application version. e.g. 5.3.5 - */ - version?: string; - /** - * Application build. e.g. VTST - */ - build?: string; - /** - * Whether advanced compute options are present - */ - hasAdvancedComputeOptions?: boolean; - /** - * Whether licensing is present - */ - isLicensed?: boolean; /** * entity identity */ @@ -47858,26 +48793,37 @@ export interface WorkflowPropertySchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; - }; - executable?: { /** - * The name of the executable. e.g. pw.x + * The short name of the application. e.g. qe */ - name: string; + shortName: string; /** - * _ids of the application this executable belongs to + * Application's short description. + */ + summary: string; + /** + * Application version. e.g. 5.3.5 + */ + version: string; + /** + * Application build. e.g. VTST */ - applicationId?: string[]; + build: string; /** * Whether advanced compute options are present */ hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; + }; + executable?: { /** * entity identity */ @@ -47891,6 +48837,10 @@ export interface WorkflowPropertySchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -47898,65 +48848,49 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - flavor?: { - /** - * _id of the executable this flavor belongs to - */ - executableId?: string; - /** - * name of the executable this flavor belongs to - */ - executableName?: string; + }[]; /** - * name of the application this flavor belongs to + * _ids of the application this executable belongs to */ - applicationName?: string; - input?: { - templateId?: string; - templateName?: string; - /** - * name of the resulting input file, if different than template name - */ - name?: string; - }[]; + applicationId: string[]; /** - * list of application versions this flavor supports + * Whether advanced compute options are present */ - supportedApplicationVersions?: string[]; + hasAdvancedComputeOptions?: boolean; + }; + flavor?: { /** * entity identity */ @@ -47973,7 +48907,7 @@ export interface WorkflowPropertySchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -47981,76 +48915,114 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; + /** + * _id of the executable this flavor belongs to + */ + executableId: string; + /** + * name of the executable this flavor belongs to + */ + executableName?: string; + /** + * name of the application this flavor belongs to + */ + applicationName?: string; + input: { + templateId?: string; + templateName?: string; + /** + * name of the resulting input file, if different than template name + */ + name?: string; + }[]; + /** + * list of application versions this flavor supports + */ + supportedApplicationVersions?: string[]; }; - /** - * unit input (type to be specified by the application's execution unit) - */ input: { - [k: string]: unknown; - }; + template: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * Content of the template. e.g. &CONTROL calculation='scf' ... + */ + content: string; + }; + /** + * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + */ + rendered: string; + isManuallyChanged: boolean; + }[]; + context?: { + name: ContextProviderNameEnum; + isEdited: boolean; + data: {}; + extraData?: {}; + }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -48060,6 +49032,10 @@ export interface WorkflowPropertySchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -48067,54 +49043,74 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "assignment"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + scope?: string; /** * Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. */ @@ -48136,36 +49132,11 @@ export interface WorkflowPropertySchema { * Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) */ value: string | boolean | number; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -48175,6 +49146,10 @@ export interface WorkflowPropertySchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -48182,82 +49157,57 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - scope?: string; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "processing"; - /** - * Contains information about the operation used. - */ - operation: string; - /** - * Contains information about the specific type of the operation used. - */ - operationType: string; - /** - * unit input (type to be specified by the child units) - */ - inputData: { - [k: string]: unknown; - }; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -48274,79 +49224,33 @@ export interface WorkflowPropertySchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; /** - * entity slug + * Contains information about the operation used. */ - slug?: string; - systemName?: string; + operation: string; /** - * entity's schema version. Used to distinct between different schemas. + * Contains information about the specific type of the operation used. */ - schemaVersion?: string; + operationType: string; /** - * Identifies that entity is defaultable + * unit input (type to be specified by the child units) */ - isDefault?: boolean; + inputData: { + [k: string]: unknown; + }; + })[]; + model: { /** - * names of the pre-processors for this calculation + * general type of the model, eg. `dft` */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + type: string; /** - * names of the post-processors for this calculation + * general subtype of the model, eg. `lda` */ - postProcessors?: ({ + subtype: string; + method: { /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * entity tags - */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; - })[]; - model: { - /** - * general type of the model, eg. `dft` - */ - type: string; - /** - * general subtype of the model, eg. `lda` - */ - subtype: string; - method: { - /** - * general type of this method, eg. `pseudopotential` + * general type of this method, eg. `pseudopotential` */ type: string; /** @@ -48366,204 +49270,161 @@ export interface WorkflowPropertySchema { }; application: { /** - * The short name of the application. e.g. qe + * entity identity */ - shortName?: string; + _id?: string; /** - * Application's short description. + * entity slug */ - summary?: string; + slug?: string; + systemName?: string; /** - * Application version. e.g. 5.3.5 + * entity's schema version. Used to distinct between different schemas. */ - version?: string; + schemaVersion?: string; /** - * Application build. e.g. VTST + * entity name */ - build?: string; + name: string; /** - * Whether advanced compute options are present + * Identifies that entity is defaultable */ - hasAdvancedComputeOptions?: boolean; + isDefault?: boolean; /** - * Whether licensing is present + * The short name of the application. e.g. qe */ - isLicensed?: boolean; + shortName: string; /** - * entity identity + * Application's short description. */ - _id?: string; + summary: string; /** - * entity slug + * Application version. e.g. 5.3.5 */ - slug?: string; - systemName?: string; + version: string; /** - * entity's schema version. Used to distinct between different schemas. + * Application build. e.g. VTST */ - schemaVersion?: string; + build: string; /** - * entity name + * Whether advanced compute options are present */ - name?: string; + hasAdvancedComputeOptions?: boolean; /** - * Identifies that entity is defaultable + * Whether licensing is present */ - isDefault?: boolean; - [k: string]: unknown; + isLicensed?: boolean; }; /** * Defines whether to store the results/properties extracted in this unit to properties collection */ isDraft?: boolean; + }[]; + /** + * Contains the Units of the Workflow + */ + units: ({ /** - * subworkflow identity + * entity identity */ _id?: string; /** - * Human-readable name of the subworkflow. e.g. Total-energy + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name */ name: string; /** - * Array of characteristic properties calculated by this subworkflow + * Identifies that entity is defaultable */ - properties?: string[]; + isDefault?: boolean; /** - * Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + * names of the pre-processors for this calculation */ - compute?: { - /** - * Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. - */ - queue: "D" | "OR" | "OF" | "OFplus" | "SR" | "SF" | "SFplus" | "GPOF" | "GP2OF" | "GP4OF" | "GPSF" | "GP2SF" | "GP4SF" | "OR4" | "OR8" | "OR16" | "SR4" | "SR8" | "SR16" | "GOF" | "G4OF" | "G8OF" | "GSF" | "G4SF" | "G8SF"; - /** - * number of nodes used for the job inside the RMS. - */ - nodes: number; - /** - * number of CPUs used for the job inside the RMS. - */ - ppn: number; - /** - * Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' - */ - timeLimit: string; - /** - * Convention to use when reasoning about time limits - */ - timeLimitType?: "per single attempt" | "compound"; - /** - * Job is allowed to restart on termination. - */ - isRestartable?: boolean; - /** - * Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. - */ - notify?: string; - /** - * Email address to notify about job execution. - */ - email?: string; - /** - * Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. - */ - maxCPU?: number; + preProcessors: { /** - * Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + * The name of this item. e.g. scf_accuracy */ - arguments?: { - /** - * Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. - */ - nimage?: number; - /** - * Each image can be subpartitioned into `pools`, each taking care of a group of k-points. - */ - npools?: number; - /** - * Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). - */ - nband?: number; - /** - * In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. - */ - ntg?: number; - /** - * A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. - */ - ndiag?: number; - }; + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { /** - * Cluster where the job is executed. Optional on create. Required on job submission. + * The name of this item. e.g. scf_accuracy */ - cluster?: { - /** - * FQDN of the cluster. e.g. master-1-staging.exabyte.io - */ - fqdn?: string; - /** - * Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io - */ - jid?: string; - }; + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { /** - * Computation error. Optional. Appears only if something happens on jobs execution. + * The name of this item. e.g. scf_accuracy */ - errors?: { - /** - * Domain of the error appearance (internal). - */ - domain?: "rupy" | "alfred" | "celim" | "webapp"; - /** - * Should be a short, unique, machine-readable error code string. e.g. FileNotFound - */ - reason?: string; - /** - * Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' - */ - message?: string; - /** - * Full machine-readable error traceback. e.g. FileNotFound - */ - traceback?: string; - }[]; + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { /** - * A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + * The name of this item. e.g. scf_accuracy */ - excludeFilesPattern?: string; - }; - }[]; - /** - * Contains the Units of the Workflow - */ - units: ({ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; /** * type of the unit */ type: "io"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; subtype: "input" | "output" | "dataFrame"; source: "api" | "db" | "object_storage"; input: ({ - /** - * rest API endpoint - */ - endpoint: string; - /** - * rest API endpoint options - */ - endpoint_options: {}; - /** - * the name of the variable in local scope to save the data under - */ - name?: string; - [k: string]: unknown; - } | ({ + type: "db_ids"; /** * IDs of item to retrieve from db */ ids: string[]; - [k: string]: unknown; } | { + type: "db_collection"; /** * db collection name */ @@ -48572,8 +49433,8 @@ export interface WorkflowPropertySchema { * whether the result should be saved as draft */ draft: boolean; - [k: string]: unknown; - }) | { + } | { + type: "object_storage"; objectData: { /** * Object storage container for the file @@ -48616,38 +49477,12 @@ export interface WorkflowPropertySchema { * What kind of file this is, e.g. image / text */ filetype?: string; - [k: string]: unknown; })[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -48657,6 +49492,10 @@ export interface WorkflowPropertySchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -48664,54 +49503,73 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "reduce"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * corresponding map unit flowchart ID */ @@ -48729,36 +49587,11 @@ export interface WorkflowPropertySchema { */ arguments: string[]; }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -48768,6 +49601,10 @@ export interface WorkflowPropertySchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -48775,54 +49612,73 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "condition"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Input information for condition. */ @@ -48856,36 +49712,11 @@ export interface WorkflowPropertySchema { * Throw exception on reaching to maximum occurence. */ throwException?: boolean; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -48895,6 +49726,10 @@ export interface WorkflowPropertySchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -48902,75 +49737,57 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "assertion"; - /** - * The statement to be evaluated - */ - statement: string; - /** - * The error message to be displayed if the assertion fails - */ - errorMessage?: string; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -48987,7 +49804,19 @@ export interface WorkflowPropertySchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; + /** + * The statement to be evaluated + */ + statement: string; + /** + * The error message to be displayed if the assertion fails + */ + errorMessage?: string; + } | { + /** + * entity identity + */ + _id?: string; /** * entity slug */ @@ -48997,6 +49826,10 @@ export interface WorkflowPropertySchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -49004,71 +49837,111 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "execution"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; application: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; /** * The short name of the application. e.g. qe */ - shortName?: string; + shortName: string; /** * Application's short description. */ - summary?: string; + summary: string; /** * Application version. e.g. 5.3.5 */ - version?: string; + version: string; /** * Application build. e.g. VTST */ - build?: string; + build: string; /** * Whether advanced compute options are present */ @@ -49077,6 +49950,8 @@ export interface WorkflowPropertySchema { * Whether licensing is present */ isLicensed?: boolean; + }; + executable?: { /** * entity identity */ @@ -49093,26 +49968,57 @@ export interface WorkflowPropertySchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; - }; - executable?: { /** - * The name of the executable. e.g. pw.x + * names of the pre-processors for this calculation */ - name: string; + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * _ids of the application this executable belongs to + * names of the post-processors for this calculation */ - applicationId?: string[]; + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * _ids of the application this executable belongs to + */ + applicationId: string[]; /** * Whether advanced compute options are present */ hasAdvancedComputeOptions?: boolean; + }; + flavor?: { /** * entity identity */ @@ -49126,6 +50032,10 @@ export interface WorkflowPropertySchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -49133,45 +50043,43 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - flavor?: { + }[]; /** * _id of the executable this flavor belongs to */ - executableId?: string; + executableId: string; /** * name of the executable this flavor belongs to */ @@ -49180,7 +50088,7 @@ export interface WorkflowPropertySchema { * name of the application this flavor belongs to */ applicationName?: string; - input?: { + input: { templateId?: string; templateName?: string; /** @@ -49192,100 +50100,57 @@ export interface WorkflowPropertySchema { * list of application versions this flavor supports */ supportedApplicationVersions?: string[]; - /** - * entity identity - */ - _id?: string; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * entity name - */ - name?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ + }; + input: { + template: { /** - * The name of this item. e.g. scf_accuracy + * entity identity */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ + _id?: string; /** - * The name of this item. e.g. scf_accuracy + * entity slug */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ + slug?: string; + systemName?: string; /** - * The name of this item. e.g. scf_accuracy + * entity's schema version. Used to distinct between different schemas. */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ + schemaVersion?: string; /** - * The name of this item. e.g. scf_accuracy + * entity name */ name: string; - } | string)[]; - }; - /** - * unit input (type to be specified by the application's execution unit) - */ - input: { - [k: string]: unknown; - }; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * Content of the template. e.g. &CONTROL calculation='scf' ... + */ + content: string; + }; + /** + * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + */ + rendered: string; + isManuallyChanged: boolean; + }[]; + context?: { + name: ContextProviderNameEnum; + isEdited: boolean; + data: {}; + extraData?: {}; + }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -49295,6 +50160,10 @@ export interface WorkflowPropertySchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -49302,54 +50171,74 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "assignment"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + scope?: string; /** * Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. */ @@ -49371,36 +50260,11 @@ export interface WorkflowPropertySchema { * Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) */ value: string | boolean | number; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -49410,6 +50274,10 @@ export interface WorkflowPropertySchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -49417,55 +50285,73 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - scope?: string; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "processing"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Contains information about the operation used. */ @@ -49480,36 +50366,11 @@ export interface WorkflowPropertySchema { inputData: { [k: string]: unknown; }; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -49519,6 +50380,10 @@ export interface WorkflowPropertySchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -49526,54 +50391,73 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "map"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Id of workflow to run inside map */ @@ -49600,36 +50484,11 @@ export interface WorkflowPropertySchema { values?: (string | number | {})[]; useValues?: boolean; }; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -49639,6 +50498,10 @@ export interface WorkflowPropertySchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -49646,67 +50509,57 @@ export interface WorkflowPropertySchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "subworkflow"; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -49723,66 +50576,6 @@ export interface WorkflowPropertySchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * entity tags - */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; })[]; /** * Array of characteristic properties calculated by this workflow (TODO: add enums) @@ -51113,37 +51906,236 @@ export interface PropertyHolderSchema { * Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting */ subworkflows: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Array of characteristic properties calculated by this subworkflow + */ + properties?: string[]; + /** + * Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + */ + compute?: { + /** + * Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. + */ + queue: "D" | "OR" | "OF" | "OFplus" | "SR" | "SF" | "SFplus" | "GPOF" | "GP2OF" | "GP4OF" | "GPSF" | "GP2SF" | "GP4SF" | "OR4" | "OR8" | "OR16" | "SR4" | "SR8" | "SR16" | "GOF" | "G4OF" | "G8OF" | "GSF" | "G4SF" | "G8SF"; + /** + * number of nodes used for the job inside the RMS. + */ + nodes: number; + /** + * number of CPUs used for the job inside the RMS. + */ + ppn: number; + /** + * Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' + */ + timeLimit: string; + /** + * Convention to use when reasoning about time limits + */ + timeLimitType?: "per single attempt" | "compound"; + /** + * Job is allowed to restart on termination. + */ + isRestartable?: boolean; + /** + * Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. + */ + notify?: string; + /** + * Email address to notify about job execution. + */ + email?: string; + /** + * Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. + */ + maxCPU?: number; + /** + * Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + */ + arguments?: { + /** + * Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. + */ + nimage?: number; + /** + * Each image can be subpartitioned into `pools`, each taking care of a group of k-points. + */ + npools?: number; + /** + * Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). + */ + nband?: number; + /** + * In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. + */ + ntg?: number; + /** + * A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. + */ + ndiag?: number; + }; + /** + * Cluster where the job is executed. Optional on create. Required on job submission. + */ + cluster?: { + /** + * FQDN of the cluster. e.g. master-1-staging.exabyte.io + */ + fqdn?: string; + /** + * Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io + */ + jid?: string; + }; + /** + * Computation error. Optional. Appears only if something happens on jobs execution. + */ + errors?: { + /** + * Domain of the error appearance (internal). + */ + domain?: "rupy" | "alfred" | "celim" | "webapp"; + /** + * Should be a short, unique, machine-readable error code string. e.g. FileNotFound + */ + reason?: string; + /** + * Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' + */ + message?: string; + /** + * Full machine-readable error traceback. e.g. FileNotFound + */ + traceback?: string; + }[]; + /** + * A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + */ + excludeFilesPattern?: string; + }; /** * Contains the Units of the subworkflow */ units: ({ /** - * type of the unit + * entity identity */ - type: "io"; - subtype: "input" | "output" | "dataFrame"; - source: "api" | "db" | "object_storage"; - input: ({ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { /** - * rest API endpoint + * The name of this item. e.g. scf_accuracy */ - endpoint: string; + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { /** - * rest API endpoint options + * The name of this item. e.g. scf_accuracy */ - endpoint_options: {}; + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { /** - * the name of the variable in local scope to save the data under + * The name of this item. e.g. scf_accuracy */ - name?: string; - [k: string]: unknown; - } | ({ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "io"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + subtype: "input" | "output" | "dataFrame"; + source: "api" | "db" | "object_storage"; + input: ({ + type: "db_ids"; /** * IDs of item to retrieve from db */ ids: string[]; - [k: string]: unknown; } | { + type: "db_collection"; /** * db collection name */ @@ -51152,8 +52144,8 @@ export interface PropertyHolderSchema { * whether the result should be saved as draft */ draft: boolean; - [k: string]: unknown; - }) | { + } | { + type: "object_storage"; objectData: { /** * Object storage container for the file @@ -51196,38 +52188,12 @@ export interface PropertyHolderSchema { * What kind of file this is, e.g. image / text */ filetype?: string; - [k: string]: unknown; })[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -51237,6 +52203,10 @@ export interface PropertyHolderSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -51244,54 +52214,73 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "reduce"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * corresponding map unit flowchart ID */ @@ -51309,36 +52298,11 @@ export interface PropertyHolderSchema { */ arguments: string[]; }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -51348,6 +52312,10 @@ export interface PropertyHolderSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -51355,54 +52323,73 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "condition"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Input information for condition. */ @@ -51436,36 +52423,11 @@ export interface PropertyHolderSchema { * Throw exception on reaching to maximum occurence. */ throwException?: boolean; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -51475,6 +52437,10 @@ export interface PropertyHolderSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -51482,75 +52448,57 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "assertion"; - /** - * The statement to be evaluated - */ - statement: string; - /** - * The error message to be displayed if the assertion fails - */ - errorMessage?: string; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -51567,7 +52515,19 @@ export interface PropertyHolderSchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; + /** + * The statement to be evaluated + */ + statement: string; + /** + * The error message to be displayed if the assertion fails + */ + errorMessage?: string; + } | { + /** + * entity identity + */ + _id?: string; /** * entity slug */ @@ -51577,6 +52537,10 @@ export interface PropertyHolderSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -51584,79 +52548,74 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "execution"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; application: { - /** - * The short name of the application. e.g. qe - */ - shortName?: string; - /** - * Application's short description. - */ - summary?: string; - /** - * Application version. e.g. 5.3.5 - */ - version?: string; - /** - * Application build. e.g. VTST - */ - build?: string; - /** - * Whether advanced compute options are present - */ - hasAdvancedComputeOptions?: boolean; - /** - * Whether licensing is present - */ - isLicensed?: boolean; /** * entity identity */ @@ -51673,26 +52632,37 @@ export interface PropertyHolderSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; - }; - executable?: { /** - * The name of the executable. e.g. pw.x + * The short name of the application. e.g. qe */ - name: string; + shortName: string; /** - * _ids of the application this executable belongs to + * Application's short description. + */ + summary: string; + /** + * Application version. e.g. 5.3.5 + */ + version: string; + /** + * Application build. e.g. VTST */ - applicationId?: string[]; + build: string; /** * Whether advanced compute options are present */ hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; + }; + executable?: { /** * entity identity */ @@ -51706,6 +52676,10 @@ export interface PropertyHolderSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -51713,65 +52687,49 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - flavor?: { - /** - * _id of the executable this flavor belongs to - */ - executableId?: string; - /** - * name of the executable this flavor belongs to - */ - executableName?: string; + }[]; /** - * name of the application this flavor belongs to + * _ids of the application this executable belongs to */ - applicationName?: string; - input?: { - templateId?: string; - templateName?: string; - /** - * name of the resulting input file, if different than template name - */ - name?: string; - }[]; + applicationId: string[]; /** - * list of application versions this flavor supports + * Whether advanced compute options are present */ - supportedApplicationVersions?: string[]; + hasAdvancedComputeOptions?: boolean; + }; + flavor?: { /** * entity identity */ @@ -51788,7 +52746,7 @@ export interface PropertyHolderSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -51796,76 +52754,114 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; + /** + * _id of the executable this flavor belongs to + */ + executableId: string; + /** + * name of the executable this flavor belongs to + */ + executableName?: string; + /** + * name of the application this flavor belongs to + */ + applicationName?: string; + input: { + templateId?: string; + templateName?: string; + /** + * name of the resulting input file, if different than template name + */ + name?: string; + }[]; + /** + * list of application versions this flavor supports + */ + supportedApplicationVersions?: string[]; }; - /** - * unit input (type to be specified by the application's execution unit) - */ input: { - [k: string]: unknown; - }; + template: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * Content of the template. e.g. &CONTROL calculation='scf' ... + */ + content: string; + }; + /** + * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + */ + rendered: string; + isManuallyChanged: boolean; + }[]; + context?: { + name: ContextProviderNameEnum; + isEdited: boolean; + data: {}; + extraData?: {}; + }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -51875,6 +52871,10 @@ export interface PropertyHolderSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -51882,54 +52882,74 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "assignment"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + scope?: string; /** * Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. */ @@ -51951,36 +52971,11 @@ export interface PropertyHolderSchema { * Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) */ value: string | boolean | number; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -51990,6 +52985,10 @@ export interface PropertyHolderSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -51997,82 +52996,57 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - scope?: string; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "processing"; - /** - * Contains information about the operation used. - */ - operation: string; - /** - * Contains information about the specific type of the operation used. - */ - operationType: string; - /** - * unit input (type to be specified by the child units) - */ - inputData: { - [k: string]: unknown; - }; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -52089,66 +53063,20 @@ export interface PropertyHolderSchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation + * Contains information about the operation used. */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + operation: string; /** - * names of the results for this calculation + * Contains information about the specific type of the operation used. */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + operationType: string; /** - * entity tags + * unit input (type to be specified by the child units) */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; + inputData: { + [k: string]: unknown; + }; })[]; model: { /** @@ -52181,204 +53109,161 @@ export interface PropertyHolderSchema { }; application: { /** - * The short name of the application. e.g. qe + * entity identity */ - shortName?: string; + _id?: string; /** - * Application's short description. + * entity slug */ - summary?: string; + slug?: string; + systemName?: string; /** - * Application version. e.g. 5.3.5 + * entity's schema version. Used to distinct between different schemas. */ - version?: string; + schemaVersion?: string; /** - * Application build. e.g. VTST + * entity name */ - build?: string; + name: string; /** - * Whether advanced compute options are present + * Identifies that entity is defaultable */ - hasAdvancedComputeOptions?: boolean; + isDefault?: boolean; /** - * Whether licensing is present + * The short name of the application. e.g. qe */ - isLicensed?: boolean; + shortName: string; /** - * entity identity + * Application's short description. */ - _id?: string; + summary: string; /** - * entity slug + * Application version. e.g. 5.3.5 */ - slug?: string; - systemName?: string; + version: string; /** - * entity's schema version. Used to distinct between different schemas. + * Application build. e.g. VTST */ - schemaVersion?: string; + build: string; /** - * entity name + * Whether advanced compute options are present */ - name?: string; + hasAdvancedComputeOptions?: boolean; /** - * Identifies that entity is defaultable + * Whether licensing is present */ - isDefault?: boolean; - [k: string]: unknown; + isLicensed?: boolean; }; /** * Defines whether to store the results/properties extracted in this unit to properties collection */ isDraft?: boolean; + }[]; + /** + * Contains the Units of the Workflow + */ + units: ({ /** - * subworkflow identity + * entity identity */ _id?: string; /** - * Human-readable name of the subworkflow. e.g. Total-energy + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name */ name: string; /** - * Array of characteristic properties calculated by this subworkflow + * Identifies that entity is defaultable */ - properties?: string[]; + isDefault?: boolean; /** - * Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + * names of the pre-processors for this calculation */ - compute?: { - /** - * Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. - */ - queue: "D" | "OR" | "OF" | "OFplus" | "SR" | "SF" | "SFplus" | "GPOF" | "GP2OF" | "GP4OF" | "GPSF" | "GP2SF" | "GP4SF" | "OR4" | "OR8" | "OR16" | "SR4" | "SR8" | "SR16" | "GOF" | "G4OF" | "G8OF" | "GSF" | "G4SF" | "G8SF"; - /** - * number of nodes used for the job inside the RMS. - */ - nodes: number; - /** - * number of CPUs used for the job inside the RMS. - */ - ppn: number; - /** - * Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' - */ - timeLimit: string; - /** - * Convention to use when reasoning about time limits - */ - timeLimitType?: "per single attempt" | "compound"; - /** - * Job is allowed to restart on termination. - */ - isRestartable?: boolean; - /** - * Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. - */ - notify?: string; - /** - * Email address to notify about job execution. - */ - email?: string; - /** - * Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. - */ - maxCPU?: number; + preProcessors: { /** - * Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + * The name of this item. e.g. scf_accuracy */ - arguments?: { - /** - * Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. - */ - nimage?: number; - /** - * Each image can be subpartitioned into `pools`, each taking care of a group of k-points. - */ - npools?: number; - /** - * Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). - */ - nband?: number; - /** - * In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. - */ - ntg?: number; - /** - * A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. - */ - ndiag?: number; - }; + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { /** - * Cluster where the job is executed. Optional on create. Required on job submission. + * The name of this item. e.g. scf_accuracy */ - cluster?: { - /** - * FQDN of the cluster. e.g. master-1-staging.exabyte.io - */ - fqdn?: string; - /** - * Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io - */ - jid?: string; - }; + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { /** - * Computation error. Optional. Appears only if something happens on jobs execution. + * The name of this item. e.g. scf_accuracy */ - errors?: { - /** - * Domain of the error appearance (internal). - */ - domain?: "rupy" | "alfred" | "celim" | "webapp"; - /** - * Should be a short, unique, machine-readable error code string. e.g. FileNotFound - */ - reason?: string; - /** - * Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' - */ - message?: string; - /** - * Full machine-readable error traceback. e.g. FileNotFound - */ - traceback?: string; - }[]; + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { /** - * A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + * The name of this item. e.g. scf_accuracy */ - excludeFilesPattern?: string; - }; - }[]; - /** - * Contains the Units of the Workflow - */ - units: ({ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; /** * type of the unit */ type: "io"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; subtype: "input" | "output" | "dataFrame"; source: "api" | "db" | "object_storage"; input: ({ - /** - * rest API endpoint - */ - endpoint: string; - /** - * rest API endpoint options - */ - endpoint_options: {}; - /** - * the name of the variable in local scope to save the data under - */ - name?: string; - [k: string]: unknown; - } | ({ + type: "db_ids"; /** * IDs of item to retrieve from db */ ids: string[]; - [k: string]: unknown; } | { + type: "db_collection"; /** * db collection name */ @@ -52387,8 +53272,8 @@ export interface PropertyHolderSchema { * whether the result should be saved as draft */ draft: boolean; - [k: string]: unknown; - }) | { + } | { + type: "object_storage"; objectData: { /** * Object storage container for the file @@ -52431,38 +53316,12 @@ export interface PropertyHolderSchema { * What kind of file this is, e.g. image / text */ filetype?: string; - [k: string]: unknown; })[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -52472,6 +53331,10 @@ export interface PropertyHolderSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -52479,54 +53342,73 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "reduce"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * corresponding map unit flowchart ID */ @@ -52544,36 +53426,11 @@ export interface PropertyHolderSchema { */ arguments: string[]; }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -52583,6 +53440,10 @@ export interface PropertyHolderSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -52590,54 +53451,73 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "condition"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Input information for condition. */ @@ -52671,36 +53551,11 @@ export interface PropertyHolderSchema { * Throw exception on reaching to maximum occurence. */ throwException?: boolean; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -52710,6 +53565,10 @@ export interface PropertyHolderSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -52717,75 +53576,57 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "assertion"; - /** - * The statement to be evaluated - */ - statement: string; - /** - * The error message to be displayed if the assertion fails - */ - errorMessage?: string; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -52802,7 +53643,19 @@ export interface PropertyHolderSchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; + /** + * The statement to be evaluated + */ + statement: string; + /** + * The error message to be displayed if the assertion fails + */ + errorMessage?: string; + } | { + /** + * entity identity + */ + _id?: string; /** * entity slug */ @@ -52812,6 +53665,10 @@ export interface PropertyHolderSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -52819,79 +53676,74 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "execution"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; application: { - /** - * The short name of the application. e.g. qe - */ - shortName?: string; - /** - * Application's short description. - */ - summary?: string; - /** - * Application version. e.g. 5.3.5 - */ - version?: string; - /** - * Application build. e.g. VTST - */ - build?: string; - /** - * Whether advanced compute options are present - */ - hasAdvancedComputeOptions?: boolean; - /** - * Whether licensing is present - */ - isLicensed?: boolean; /** * entity identity */ @@ -52908,26 +53760,37 @@ export interface PropertyHolderSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; - }; - executable?: { /** - * The name of the executable. e.g. pw.x + * The short name of the application. e.g. qe + */ + shortName: string; + /** + * Application's short description. */ - name: string; + summary: string; /** - * _ids of the application this executable belongs to + * Application version. e.g. 5.3.5 + */ + version: string; + /** + * Application build. e.g. VTST */ - applicationId?: string[]; + build: string; /** * Whether advanced compute options are present */ hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; + }; + executable?: { /** * entity identity */ @@ -52941,6 +53804,10 @@ export interface PropertyHolderSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -52948,65 +53815,49 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - flavor?: { - /** - * _id of the executable this flavor belongs to - */ - executableId?: string; - /** - * name of the executable this flavor belongs to - */ - executableName?: string; + }[]; /** - * name of the application this flavor belongs to + * _ids of the application this executable belongs to */ - applicationName?: string; - input?: { - templateId?: string; - templateName?: string; - /** - * name of the resulting input file, if different than template name - */ - name?: string; - }[]; + applicationId: string[]; /** - * list of application versions this flavor supports + * Whether advanced compute options are present */ - supportedApplicationVersions?: string[]; + hasAdvancedComputeOptions?: boolean; + }; + flavor?: { /** * entity identity */ @@ -53023,7 +53874,7 @@ export interface PropertyHolderSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -53031,76 +53882,114 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; + /** + * _id of the executable this flavor belongs to + */ + executableId: string; + /** + * name of the executable this flavor belongs to + */ + executableName?: string; + /** + * name of the application this flavor belongs to + */ + applicationName?: string; + input: { + templateId?: string; + templateName?: string; + /** + * name of the resulting input file, if different than template name + */ + name?: string; + }[]; + /** + * list of application versions this flavor supports + */ + supportedApplicationVersions?: string[]; }; - /** - * unit input (type to be specified by the application's execution unit) - */ input: { - [k: string]: unknown; - }; + template: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * Content of the template. e.g. &CONTROL calculation='scf' ... + */ + content: string; + }; + /** + * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + */ + rendered: string; + isManuallyChanged: boolean; + }[]; + context?: { + name: ContextProviderNameEnum; + isEdited: boolean; + data: {}; + extraData?: {}; + }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -53110,6 +53999,10 @@ export interface PropertyHolderSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -53117,54 +54010,74 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "assignment"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + scope?: string; /** * Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. */ @@ -53186,36 +54099,11 @@ export interface PropertyHolderSchema { * Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) */ value: string | boolean | number; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -53225,6 +54113,10 @@ export interface PropertyHolderSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -53232,55 +54124,73 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - scope?: string; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "processing"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Contains information about the operation used. */ @@ -53295,36 +54205,11 @@ export interface PropertyHolderSchema { inputData: { [k: string]: unknown; }; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -53334,6 +54219,10 @@ export interface PropertyHolderSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -53341,54 +54230,73 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "map"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Id of workflow to run inside map */ @@ -53415,36 +54323,11 @@ export interface PropertyHolderSchema { values?: (string | number | {})[]; useValues?: boolean; }; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -53454,6 +54337,10 @@ export interface PropertyHolderSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -53461,73 +54348,63 @@ export interface PropertyHolderSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "subworkflow"; /** - * entity identity + * Whether this unit is the first one to be executed. */ - _id?: string; - isDraft?: boolean; + head?: boolean; /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. */ flowchartId: string; /** @@ -53538,66 +54415,6 @@ export interface PropertyHolderSchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * entity tags - */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; })[]; /** * Array of characteristic properties calculated by this workflow (TODO: add enums) @@ -54077,23 +54894,44 @@ export interface PropertySourceSchema { }; } /** Schema dist/js/schema/software/application.json */ -export interface ApplicationSchemaBase { +export interface ApplicationSchema { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; /** * The short name of the application. e.g. qe */ - shortName?: string; + shortName: string; /** * Application's short description. */ - summary?: string; + summary: string; /** * Application version. e.g. 5.3.5 */ - version?: string; + version: string; /** * Application build. e.g. VTST */ - build?: string; + build: string; /** * Whether advanced compute options are present */ @@ -54102,43 +54940,36 @@ export interface ApplicationSchemaBase { * Whether licensing is present */ isLicensed?: boolean; +} +/** Schema dist/js/schema/software/application_properties.json */ +export interface ApplicationPropertiesSchema { /** - * entity identity + * The short name of the application. e.g. qe */ - _id?: string; + shortName: string; /** - * entity slug + * Application's short description. */ - slug?: string; - systemName?: string; + summary: string; /** - * entity's schema version. Used to distinct between different schemas. + * Application version. e.g. 5.3.5 */ - schemaVersion?: string; + version: string; /** - * entity name + * Application build. e.g. VTST */ - name?: string; + build: string; /** - * Identifies that entity is defaultable + * Whether advanced compute options are present */ - isDefault?: boolean; - [k: string]: unknown; + hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; } /** Schema dist/js/schema/software/executable.json */ export interface ExecutableSchema { - /** - * The name of the executable. e.g. pw.x - */ - name: string; - /** - * _ids of the application this executable belongs to - */ - applicationId?: string[]; - /** - * Whether advanced compute options are present - */ - hasAdvancedComputeOptions?: boolean; /** * entity identity */ @@ -54152,6 +54983,10 @@ export interface ExecutableSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -54159,66 +54994,65 @@ export interface ExecutableSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; -} -/** Schema dist/js/schema/software/flavor.json */ -export interface FlavorSchema { + }[]; /** - * _id of the executable this flavor belongs to + * _ids of the application this executable belongs to */ - executableId?: string; + applicationId: string[]; /** - * name of the executable this flavor belongs to + * Whether advanced compute options are present */ - executableName?: string; + hasAdvancedComputeOptions?: boolean; +} +/** Schema dist/js/schema/software/executable_properties.json */ +export interface ExecutablePropertiesSchema { /** - * name of the application this flavor belongs to + * The name of the executable. e.g. pw.x */ - applicationName?: string; - input?: { - templateId?: string; - templateName?: string; - /** - * name of the resulting input file, if different than template name - */ - name?: string; - }[]; + name: string; /** - * list of application versions this flavor supports + * _ids of the application this executable belongs to */ - supportedApplicationVersions?: string[]; + applicationId: string[]; + /** + * Whether advanced compute options are present + */ + hasAdvancedComputeOptions?: boolean; +} +/** Schema dist/js/schema/software/flavor.json */ +export interface FlavorSchema { /** * entity identity */ @@ -54235,7 +55069,7 @@ export interface FlavorSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -54243,64 +55077,93 @@ export interface FlavorSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; -} -/** Schema dist/js/schema/software/template.json */ -export interface TemplateSchema { - applicationName?: string; - applicationVersion?: string; + }[]; + /** + * _id of the executable this flavor belongs to + */ + executableId: string; + /** + * name of the executable this flavor belongs to + */ executableName?: string; - contextProviders?: { + /** + * name of the application this flavor belongs to + */ + applicationName?: string; + input: { + templateId?: string; + templateName?: string; /** - * The name of this item. e.g. scf_accuracy + * name of the resulting input file, if different than template name */ - name: string; + name?: string; }[]; - isManuallyChanged?: boolean; /** - * Input file name. e.g. pw_scf.in + * list of application versions this flavor supports */ - name: string; + supportedApplicationVersions?: string[]; +} +/** Schema dist/js/schema/software/flavor_properties.json */ +export interface FlavorPropertiesSchema { /** - * Content of the input file. e.g. &CONTROL calculation='scf' ... + * _id of the executable this flavor belongs to */ - content: string; + executableId: string; /** - * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + * name of the executable this flavor belongs to */ - rendered?: string; + executableName?: string; + /** + * name of the application this flavor belongs to + */ + applicationName?: string; + input: { + templateId?: string; + templateName?: string; + /** + * name of the resulting input file, if different than template name + */ + name?: string; + }[]; + /** + * list of application versions this flavor supports + */ + supportedApplicationVersions?: string[]; +} +/** Schema dist/js/schema/software/template.json */ +export interface TemplateSchema { /** * entity identity */ @@ -54314,38 +55177,55 @@ export interface TemplateSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; -} -/** Schema dist/js/schema/software_directory/modeling/deepmd.json */ -export interface DeePMDAppSchema { /** * entity name */ - name?: "deepmd"; - /** - * Application's short description. - */ - summary?: "DeePMD is a deep learning package that is based on neural network fitted first-principles data for many-body potential energy representation and molecular dynamics"; + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * Application version. e.g. 5.3.5 + * Content of the template. e.g. &CONTROL calculation='scf' ... */ - version?: "2.0.2"; - exec?: "dp" | "lmp" | "python"; + content: string; +} +/** Schema dist/js/schema/software/template_properties.json */ +export interface TemplatePropertiesSchema { + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * The short name of the application. e.g. qe + * Content of the template. e.g. &CONTROL calculation='scf' ... */ - shortName?: string; + content: string; +} +/** Schema dist/js/schema/software_directory/modeling/deepmd.json */ +export interface DeePMDAppSchema { /** - * Application build. e.g. VTST + * entity name */ - build?: string; + name: "deepmd"; /** - * Whether advanced compute options are present + * Application's short description. */ - hasAdvancedComputeOptions?: boolean; + summary: "DeePMD is a deep learning package that is based on neural network fitted first-principles data for many-body potential energy representation and molecular dynamics"; /** - * Whether licensing is present + * Application version. e.g. 5.3.5 */ - isLicensed?: boolean; + version: "2.0.2"; + exec?: "dp" | "lmp" | "python"; /** * entity identity */ @@ -54363,7 +55243,22 @@ export interface DeePMDAppSchema { * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; + /** + * The short name of the application. e.g. qe + */ + shortName: string; + /** + * Application build. e.g. VTST + */ + build: string; + /** + * Whether advanced compute options are present + */ + hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; } /** Schema dist/js/schema/software_directory/modeling/espresso/arguments.json */ export interface QuantumEspressoArgumentsSchema { @@ -54399,24 +55294,41 @@ export interface NWChem { /** * entity name */ - name?: "NWChem"; + name: "NWChem"; /** * Application's short description. */ - summary?: "NWChem: a comprehensive and scalable open-source solution for large scale molecular simulations"; + summary: "NWChem: a comprehensive and scalable open-source solution for large scale molecular simulations"; /** * Application version. e.g. 5.3.5 */ - version?: "6.6" | "7.0.2"; + version: "6.6" | "7.0.2"; exec?: "nwchem"; + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; /** * The short name of the application. e.g. qe */ - shortName?: string; + shortName: string; /** * Application build. e.g. VTST */ - build?: string; + build: string; /** * Whether advanced compute options are present */ @@ -54425,6 +55337,9 @@ export interface NWChem { * Whether licensing is present */ isLicensed?: boolean; +} +/** Schema dist/js/schema/software_directory/modeling/unit/execution.json */ +export interface ExecutionUnitSchemaForPhysicsBasedSimulationEnginesDefinedUsingEspressoAsExample { /** * entity identity */ @@ -54438,43 +55353,85 @@ export interface NWChem { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; -} -/** Schema dist/js/schema/software_directory/modeling/unit/execution.json */ -export interface ExecutionUnitSchemaForPhysicsBasedSimulationEnginesDefinedUsingEspressoAsExample { /** - * type of the unit + * names of the pre-processors for this calculation */ - type: "execution"; - application: { + preProcessors: { /** - * The short name of the application. e.g. qe - */ - shortName?: string; - /** - * Application's short description. - */ - summary?: string; - /** - * Application version. e.g. 5.3.5 + * The name of this item. e.g. scf_accuracy */ - version?: string; + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { /** - * Application build. e.g. VTST + * The name of this item. e.g. scf_accuracy */ - build?: string; + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { /** - * Whether advanced compute options are present + * The name of this item. e.g. scf_accuracy */ - hasAdvancedComputeOptions?: boolean; + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { /** - * Whether licensing is present + * The name of this item. e.g. scf_accuracy */ - isLicensed?: boolean; + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "execution"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + application: { /** * entity identity */ @@ -54491,26 +55448,37 @@ export interface ExecutionUnitSchemaForPhysicsBasedSimulationEnginesDefinedUsing /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; - }; - executable?: { /** - * The name of the executable. e.g. pw.x + * The short name of the application. e.g. qe */ - name: string; + shortName: string; /** - * _ids of the application this executable belongs to + * Application's short description. + */ + summary: string; + /** + * Application version. e.g. 5.3.5 + */ + version: string; + /** + * Application build. e.g. VTST */ - applicationId?: string[]; + build: string; /** * Whether advanced compute options are present */ hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; + }; + executable?: { /** * entity identity */ @@ -54524,6 +55492,10 @@ export interface ExecutionUnitSchemaForPhysicsBasedSimulationEnginesDefinedUsing * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -54531,65 +55503,49 @@ export interface ExecutionUnitSchemaForPhysicsBasedSimulationEnginesDefinedUsing /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - flavor?: { - /** - * _id of the executable this flavor belongs to - */ - executableId?: string; - /** - * name of the executable this flavor belongs to - */ - executableName?: string; + }[]; /** - * name of the application this flavor belongs to + * _ids of the application this executable belongs to */ - applicationName?: string; - input?: { - templateId?: string; - templateName?: string; - /** - * name of the resulting input file, if different than template name - */ - name?: string; - }[]; + applicationId: string[]; /** - * list of application versions this flavor supports + * Whether advanced compute options are present */ - supportedApplicationVersions?: string[]; + hasAdvancedComputeOptions?: boolean; + }; + flavor?: { /** * entity identity */ @@ -54606,7 +55562,7 @@ export interface ExecutionUnitSchemaForPhysicsBasedSimulationEnginesDefinedUsing /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -54614,56 +55570,102 @@ export interface ExecutionUnitSchemaForPhysicsBasedSimulationEnginesDefinedUsing /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - /** - * unit input (type to be specified by the application's execution unit) - */ - input: ({ + }[]; + /** + * _id of the executable this flavor belongs to + */ + executableId: string; /** - * Input file name. e.g. pw_scf.in + * name of the executable this flavor belongs to */ - name: string; + executableName?: string; /** - * Content of the input file. e.g. &CONTROL calculation='scf' ... + * name of the application this flavor belongs to */ - content: string; + applicationName?: string; + input: { + templateId?: string; + templateName?: string; + /** + * name of the resulting input file, if different than template name + */ + name?: string; + }[]; + /** + * list of application versions this flavor supports + */ + supportedApplicationVersions?: string[]; + }; + input: ({ + template: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * Content of the template. e.g. &CONTROL calculation='scf' ... + */ + content: string; + }; /** * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... */ - rendered?: string; + rendered: string; + isManuallyChanged: boolean; } | { templateId?: string; templateName?: string; @@ -54672,36 +55674,33 @@ export interface ExecutionUnitSchemaForPhysicsBasedSimulationEnginesDefinedUsing */ name?: string; })[]; + context?: { + name: ContextProviderNameEnum; + isEdited: boolean; + data: {}; + extraData?: {}; + }[]; +} +/** Schema dist/js/schema/software_directory/modeling/vasp.json */ +export interface ViennaAbInitoSimulationPackage { /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. + * entity name */ - head?: boolean; + name: "vasp"; /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + * Application's short description. */ - flowchartId: string; + summary: "vienna ab-initio simulation package"; + flavor?: "vasp" | "vasp_nscf" | "vasp_bands"; /** - * Next unit's flowchartId. If empty, the current unit is the last. + * Application version. e.g. 5.3.5 */ - next?: string; + version: "5.3.5"; + exec?: "vasp"; /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + * entity identity */ - enableRender?: boolean; - context?: {}; + _id?: string; /** * entity slug */ @@ -54716,84 +55715,38 @@ export interface ExecutionUnitSchemaForPhysicsBasedSimulationEnginesDefinedUsing */ isDefault?: boolean; /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation + * The short name of the application. e.g. qe */ - postProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + shortName: string; /** - * names of the monitors for this calculation + * Application build. e.g. VTST */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + build: string; /** - * names of the results for this calculation + * Whether advanced compute options are present */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + hasAdvancedComputeOptions?: boolean; /** - * entity tags + * Whether licensing is present */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; + isLicensed?: boolean; } -/** Schema dist/js/schema/software_directory/modeling/vasp.json */ -export interface ViennaAbInitoSimulationPackage { +/** Schema dist/js/schema/software_directory/scripting/jupyter_lab.json */ +export interface JupyterLabApplicationSchema { /** * entity name */ - name?: "vasp"; + name: "jupyterLab"; + flavor?: "notebook"; /** * Application's short description. */ - summary?: "vienna ab-initio simulation package"; - flavor?: "vasp" | "vasp_nscf" | "vasp_bands"; + summary: "Jupyter Lab"; /** * Application version. e.g. 5.3.5 */ - version?: "5.3.5"; - exec?: "vasp"; - /** - * The short name of the application. e.g. qe - */ - shortName?: string; - /** - * Application build. e.g. VTST - */ - build?: string; - /** - * Whether advanced compute options are present - */ - hasAdvancedComputeOptions?: boolean; - /** - * Whether licensing is present - */ - isLicensed?: boolean; + version: "0.33.12"; + exec?: "jupyter"; /** * entity identity */ @@ -54811,32 +55764,14 @@ export interface ViennaAbInitoSimulationPackage { * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; -} -/** Schema dist/js/schema/software_directory/scripting/jupyter_lab.json */ -export interface JupyterLabApplicationSchema { - /** - * entity name - */ - name?: "jupyterLab"; - flavor?: "notebook"; - /** - * Application's short description. - */ - summary?: "Jupyter Lab"; - /** - * Application version. e.g. 5.3.5 - */ - version?: "0.33.12"; - exec?: "jupyter"; /** * The short name of the application. e.g. qe */ - shortName?: string; + shortName: string; /** * Application build. e.g. VTST */ - build?: string; + build: string; /** * Whether advanced compute options are present */ @@ -54845,40 +55780,22 @@ export interface JupyterLabApplicationSchema { * Whether licensing is present */ isLicensed?: boolean; - /** - * entity identity - */ - _id?: string; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - [k: string]: unknown; } /** Schema dist/js/schema/software_directory/scripting/python.json */ export interface PythonProgramingLanguageSchema { /** * entity name */ - name?: "python"; + name: "python"; flavor?: "python2" | "python3"; /** * Application's short description. */ - summary?: "Python Script"; + summary: "Python Script"; /** * Application version. e.g. 5.3.5 */ - version?: "2.7.5" | "3.6.1"; + version: "2.7.5" | "3.6.1"; exec?: "python"; /** * Optional arguments passed to the Python script @@ -54892,22 +55809,6 @@ export interface PythonProgramingLanguageSchema { * Optional Python dependencies, e.g. amqp==1.4.6 */ dependencies?: unknown[]; - /** - * The short name of the application. e.g. qe - */ - shortName?: string; - /** - * Application build. e.g. VTST - */ - build?: string; - /** - * Whether advanced compute options are present - */ - hasAdvancedComputeOptions?: boolean; - /** - * Whether licensing is present - */ - isLicensed?: boolean; /** * entity identity */ @@ -54925,23 +55826,38 @@ export interface PythonProgramingLanguageSchema { * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; + /** + * The short name of the application. e.g. qe + */ + shortName: string; + /** + * Application build. e.g. VTST + */ + build: string; + /** + * Whether advanced compute options are present + */ + hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; } /** Schema dist/js/schema/software_directory/scripting/shell.json */ export interface ShellScriptingLanguageSchema { /** * entity name */ - name?: "shell"; + name: "shell"; flavor?: "sh" | "bash" | "zsh" | "csh"; /** * Application's short description. */ - summary?: "Shell Script"; + summary: "Shell Script"; /** * Application version. e.g. 5.3.5 */ - version?: "4.2.46"; + version: "4.2.46"; exec?: "sh" | "bash" | "zsh" | "csh"; /** * Optional arguments passed to the Shell script @@ -54951,14 +55867,31 @@ export interface ShellScriptingLanguageSchema { * Optional environment variables exported before running the Shell script */ environment?: {}; + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; /** * The short name of the application. e.g. qe */ - shortName?: string; + shortName: string; /** * Application build. e.g. VTST */ - build?: string; + build: string; /** * Whether advanced compute options are present */ @@ -54967,6 +55900,9 @@ export interface ShellScriptingLanguageSchema { * Whether licensing is present */ isLicensed?: boolean; +} +/** Schema dist/js/schema/software_directory/scripting/unit/execution.json */ +export interface ExecutionUnitSchemaForScriptingBasedApplications { /** * entity identity */ @@ -54980,43 +55916,85 @@ export interface ShellScriptingLanguageSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; -} -/** Schema dist/js/schema/software_directory/scripting/unit/execution.json */ -export interface ExecutionUnitSchemaForScriptingBasedApplications { /** - * type of the unit + * names of the pre-processors for this calculation */ - type: "execution"; - application: { + preProcessors: { /** - * The short name of the application. e.g. qe - */ - shortName?: string; - /** - * Application's short description. - */ - summary?: string; - /** - * Application version. e.g. 5.3.5 + * The name of this item. e.g. scf_accuracy */ - version?: string; + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { /** - * Application build. e.g. VTST + * The name of this item. e.g. scf_accuracy */ - build?: string; + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { /** - * Whether advanced compute options are present + * The name of this item. e.g. scf_accuracy */ - hasAdvancedComputeOptions?: boolean; + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { /** - * Whether licensing is present + * The name of this item. e.g. scf_accuracy */ - isLicensed?: boolean; + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "execution"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + application: { /** * entity identity */ @@ -55033,26 +56011,37 @@ export interface ExecutionUnitSchemaForScriptingBasedApplications { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; - }; - executable?: { /** - * The name of the executable. e.g. pw.x + * The short name of the application. e.g. qe */ - name: string; + shortName: string; /** - * _ids of the application this executable belongs to + * Application's short description. + */ + summary: string; + /** + * Application version. e.g. 5.3.5 + */ + version: string; + /** + * Application build. e.g. VTST */ - applicationId?: string[]; + build: string; /** * Whether advanced compute options are present */ hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; + }; + executable?: { /** * entity identity */ @@ -55066,6 +56055,10 @@ export interface ExecutionUnitSchemaForScriptingBasedApplications { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -55073,67 +56066,51 @@ export interface ExecutionUnitSchemaForScriptingBasedApplications { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - flavor?: { + }[]; /** - * _id of the executable this flavor belongs to + * _ids of the application this executable belongs to */ - executableId?: string; + applicationId: string[]; /** - * name of the executable this flavor belongs to + * Whether advanced compute options are present */ - executableName?: string; + hasAdvancedComputeOptions?: boolean; + }; + flavor?: { /** - * name of the application this flavor belongs to - */ - applicationName?: string; - input?: { - templateId?: string; - templateName?: string; - /** - * name of the resulting input file, if different than template name - */ - name?: string; - }[]; - /** - * list of application versions this flavor supports - */ - supportedApplicationVersions?: string[]; - /** - * entity identity + * entity identity */ _id?: string; /** @@ -55148,7 +56125,7 @@ export interface ExecutionUnitSchemaForScriptingBasedApplications { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -55156,56 +56133,102 @@ export interface ExecutionUnitSchemaForScriptingBasedApplications { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - /** - * unit input (type to be specified by the application's execution unit) - */ - input: ({ + }[]; /** - * Input file name. e.g. pw_scf.in + * _id of the executable this flavor belongs to */ - name: string; + executableId: string; /** - * Content of the input file. e.g. &CONTROL calculation='scf' ... + * name of the executable this flavor belongs to */ - content: string; + executableName?: string; + /** + * name of the application this flavor belongs to + */ + applicationName?: string; + input: { + templateId?: string; + templateName?: string; + /** + * name of the resulting input file, if different than template name + */ + name?: string; + }[]; + /** + * list of application versions this flavor supports + */ + supportedApplicationVersions?: string[]; + }; + input: ({ + template: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * Content of the template. e.g. &CONTROL calculation='scf' ... + */ + content: string; + }; /** * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... */ - rendered?: string; + rendered: string; + isManuallyChanged: boolean; } | { templateId?: string; templateName?: string; @@ -55214,95 +56237,12 @@ export interface ExecutionUnitSchemaForScriptingBasedApplications { */ name?: string; })[]; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * entity tags - */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; + context?: { + name: ContextProviderNameEnum; + isEdited: boolean; + data: {}; + extraData?: {}; }[]; - [k: string]: unknown; } /** Schema dist/js/schema/system/_material.json */ export interface MaterialEntityReferenceSchema { @@ -55664,7 +56604,7 @@ export interface NameEntitySchema { /** * entity name */ - name?: string; + name: string; } /** Schema dist/js/schema/system/owner.json */ export interface EntityOwnerReferenceSchema { @@ -55693,12 +56633,58 @@ export interface PathEntitySchema { /** * entity name */ - name?: string; + name: string; /** * TODO: Use regex once schema draft version has been updated */ path?: string; } +/** Schema dist/js/schema/system/runtime_item.json */ +export interface RuntimeItemNameObjectSchema { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; +} +/** Schema dist/js/schema/system/runtime_items.json */ +export interface RuntimeItemsSchema { + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; +} /** Schema dist/js/schema/system/schema_version.json */ export interface SchemaVersion { /** @@ -55794,23 +56780,24 @@ export interface BaseWorkflowSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; metadata?: {}; } -/** Schema dist/js/schema/workflow/base_flow.json */ -export interface BaseFlow { - /** - * subworkflow identity - */ - _id?: string; - /** - * Human-readable name of the subworkflow. e.g. Total-energy - */ - name: string; +/** Schema dist/js/schema/workflow/scope.json */ +export interface WorkflowScopeSchema { + global: { + [k: string]: unknown; + }; + local: { + [k: string]: unknown; + }; +} +/** Schema dist/js/schema/workflow/subworkflow/mixin.json */ +export interface SubworkflowMixinSchema { /** * Array of characteristic properties calculated by this subworkflow */ @@ -55919,594 +56906,399 @@ export interface BaseFlow { */ excludeFilesPattern?: string; }; -} -/** Schema dist/js/schema/workflow/scope.json */ -export interface WorkflowScopeSchema { - global: { - [k: string]: unknown; - }; - local: { - [k: string]: unknown; - }; -} -/** Schema dist/js/schema/workflow/subworkflow/unit.json */ -export type WorkflowSubworkflowUnitSchema = { /** - * type of the unit + * Contains the Units of the subworkflow */ - type: "io"; - subtype: "input" | "output" | "dataFrame"; - source: "api" | "db" | "object_storage"; - input: ({ + units: ({ /** - * rest API endpoint + * entity identity */ - endpoint: string; + _id?: string; /** - * rest API endpoint options + * entity slug */ - endpoint_options: {}; + slug?: string; + systemName?: string; /** - * the name of the variable in local scope to save the data under + * entity's schema version. Used to distinct between different schemas. */ - name?: string; - [k: string]: unknown; - } | ({ + schemaVersion?: string; /** - * IDs of item to retrieve from db + * entity name */ - ids: string[]; - [k: string]: unknown; - } | { + name: string; /** - * db collection name + * Identifies that entity is defaultable */ - collection: string; + isDefault?: boolean; /** - * whether the result should be saved as draft + * names of the pre-processors for this calculation */ - draft: boolean; - [k: string]: unknown; - }) | { - objectData: { + preProcessors: { /** - * Object storage container for the file + * The name of this item. e.g. scf_accuracy */ - CONTAINER?: string; + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { /** - * Name of the file inside the object storage bucket + * The name of this item. e.g. scf_accuracy */ - NAME?: string; + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { /** - * Object storage provider + * The name of this item. e.g. scf_accuracy */ - PROVIDER?: string; + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { /** - * Region for the object container specified in Container + * The name of this item. e.g. scf_accuracy */ - REGION?: string; + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "io"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + subtype: "input" | "output" | "dataFrame"; + source: "api" | "db" | "object_storage"; + input: ({ + type: "db_ids"; /** - * Size of the file in bytes + * IDs of item to retrieve from db */ - SIZE?: number; + ids: string[]; + } | { + type: "db_collection"; /** - * Unix timestamp showing when the file was last modified + * db collection name */ - TIMESTAMP?: string; - }; - /** - * if a file with the same filename already exists, whether to overwrite the old file - */ - overwrite?: boolean; + collection: string; + /** + * whether the result should be saved as draft + */ + draft: boolean; + } | { + type: "object_storage"; + objectData: { + /** + * Object storage container for the file + */ + CONTAINER?: string; + /** + * Name of the file inside the object storage bucket + */ + NAME?: string; + /** + * Object storage provider + */ + PROVIDER?: string; + /** + * Region for the object container specified in Container + */ + REGION?: string; + /** + * Size of the file in bytes + */ + SIZE?: number; + /** + * Unix timestamp showing when the file was last modified + */ + TIMESTAMP?: string; + }; + /** + * if a file with the same filename already exists, whether to overwrite the old file + */ + overwrite?: boolean; + /** + * Relative path to the directory that contains the file. + */ + pathname?: string; + /** + * Basename of the file + */ + basename?: string; + /** + * What kind of file this is, e.g. image / text + */ + filetype?: string; + })[]; + } | { /** - * Relative path to the directory that contains the file. + * entity identity */ - pathname?: string; + _id?: string; /** - * Basename of the file + * entity slug */ - basename?: string; + slug?: string; + systemName?: string; /** - * What kind of file this is, e.g. image / text + * entity's schema version. Used to distinct between different schemas. */ - filetype?: string; - [k: string]: unknown; - })[]; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ + schemaVersion?: string; /** - * The name of this item. e.g. scf_accuracy + * entity name */ name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ /** - * The name of this item. e.g. scf_accuracy + * Identifies that entity is defaultable */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ + isDefault?: boolean; /** - * The name of this item. e.g. scf_accuracy + * names of the pre-processors for this calculation */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * The name of this item. e.g. scf_accuracy + * names of the post-processors for this calculation */ - name: string; - } | string)[]; - /** - * entity tags - */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; -} | { - /** - * type of the unit - */ - type: "reduce"; - /** - * corresponding map unit flowchart ID - */ - mapFlowchartId: string; - /** - * input information for reduce unit - */ - input: { + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * reduce operation, e.g. aggregate + * names of the monitors for this calculation */ - operation: string; + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * arguments which are passed to reduce operation function + * names of the results for this calculation */ - arguments: string[]; - }[]; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * The name of this item. e.g. scf_accuracy + * entity tags */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ + tags?: string[]; /** - * The name of this item. e.g. scf_accuracy + * Status of the unit. */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; /** - * The name of this item. e.g. scf_accuracy + * type of the unit */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ + type: "reduce"; /** - * The name of this item. e.g. scf_accuracy + * Whether this unit is the first one to be executed. */ - name: string; - } | string)[]; - /** - * entity tags - */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; -} | { - /** - * type of the unit - */ - type: "condition"; - /** - * Input information for condition. - */ - input: { + head?: boolean; /** - * Scope of the variable. e.g. 'global' or 'flowchart_id_2' + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. */ - scope: string; + flowchartId: string; /** - * Name of the input data. e.g. total_energy + * Next unit's flowchartId. If empty, the current unit is the last. */ - name: string; - }[]; - /** - * Condition statement. e.g. 'abs(x-total_energy) < 1e-5' - */ - statement: string; - /** - * Flowchart ID reference for `then` part of the condition. - */ - then: string; - /** - * Flowchart ID reference for `else` part of the condition. - */ - else: string; - /** - * Maximum occurrence of the condition, usable for loops. - */ - maxOccurrences: number; - /** - * Throw exception on reaching to maximum occurence. - */ - throwException?: boolean; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ + next?: string; /** - * The name of this item. e.g. scf_accuracy + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ + enableRender?: boolean; /** - * The name of this item. e.g. scf_accuracy + * corresponding map unit flowchart ID */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ + mapFlowchartId: string; /** - * The name of this item. e.g. scf_accuracy + * input information for reduce unit */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ + input: { + /** + * reduce operation, e.g. aggregate + */ + operation: string; + /** + * arguments which are passed to reduce operation function + */ + arguments: string[]; + }[]; + } | { /** - * The name of this item. e.g. scf_accuracy + * entity identity */ - name: string; - } | string)[]; - /** - * entity tags - */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; -} | { - /** - * type of the unit - */ - type: "assertion"; - /** - * The statement to be evaluated - */ - statement: string; - /** - * The error message to be displayed if the assertion fails - */ - errorMessage?: string; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ + _id?: string; /** - * The name of this item. e.g. scf_accuracy + * entity slug */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ + slug?: string; + systemName?: string; /** - * The name of this item. e.g. scf_accuracy + * entity's schema version. Used to distinct between different schemas. */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ + schemaVersion?: string; /** - * The name of this item. e.g. scf_accuracy + * entity name */ name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ /** - * The name of this item. e.g. scf_accuracy + * Identifies that entity is defaultable */ - name: string; - } | string)[]; - /** - * entity tags - */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; -} | { - /** - * type of the unit - */ - type: "execution"; - application: { + isDefault?: boolean; /** - * The short name of the application. e.g. qe + * names of the pre-processors for this calculation */ - shortName?: string; + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * Application's short description. + * names of the post-processors for this calculation */ - summary?: string; + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * Application version. e.g. 5.3.5 + * names of the monitors for this calculation */ - version?: string; + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * Application build. e.g. VTST + * names of the results for this calculation */ - build?: string; + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * Whether advanced compute options are present + * entity tags */ - hasAdvancedComputeOptions?: boolean; + tags?: string[]; /** - * Whether licensing is present + * Status of the unit. */ - isLicensed?: boolean; + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; /** - * entity identity + * type of the unit */ - _id?: string; + type: "condition"; /** - * entity slug + * Whether this unit is the first one to be executed. */ - slug?: string; - systemName?: string; + head?: boolean; /** - * entity's schema version. Used to distinct between different schemas. + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. */ - schemaVersion?: string; + flowchartId: string; /** - * entity name + * Next unit's flowchartId. If empty, the current unit is the last. */ - name?: string; + next?: string; /** - * Identifies that entity is defaultable + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ - isDefault?: boolean; - [k: string]: unknown; - }; - executable?: { + enableRender?: boolean; /** - * The name of the executable. e.g. pw.x + * Input information for condition. */ - name: string; + input: { + /** + * Scope of the variable. e.g. 'global' or 'flowchart_id_2' + */ + scope: string; + /** + * Name of the input data. e.g. total_energy + */ + name: string; + }[]; /** - * _ids of the application this executable belongs to + * Condition statement. e.g. 'abs(x-total_energy) < 1e-5' */ - applicationId?: string[]; + statement: string; /** - * Whether advanced compute options are present + * Flowchart ID reference for `then` part of the condition. */ - hasAdvancedComputeOptions?: boolean; + then: string; + /** + * Flowchart ID reference for `else` part of the condition. + */ + else: string; + /** + * Maximum occurrence of the condition, usable for loops. + */ + maxOccurrences: number; + /** + * Throw exception on reaching to maximum occurence. + */ + throwException?: boolean; + } | { /** * entity identity */ @@ -56520,6 +57312,10 @@ export type WorkflowSubworkflowUnitSchema = { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -56527,65 +57323,82 @@ export type WorkflowSubworkflowUnitSchema = { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - flavor?: { + }[]; /** - * _id of the executable this flavor belongs to + * entity tags */ - executableId?: string; + tags?: string[]; /** - * name of the executable this flavor belongs to + * Status of the unit. */ - executableName?: string; + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; /** - * name of the application this flavor belongs to + * type of the unit */ - applicationName?: string; - input?: { - templateId?: string; - templateName?: string; - /** - * name of the resulting input file, if different than template name - */ - name?: string; - }[]; + type: "assertion"; /** - * list of application versions this flavor supports + * Whether this unit is the first one to be executed. */ - supportedApplicationVersions?: string[]; + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + /** + * The statement to be evaluated + */ + statement: string; + /** + * The error message to be displayed if the assertion fails + */ + errorMessage?: string; + } | { /** * entity identity */ @@ -56602,7 +57415,7 @@ export type WorkflowSubworkflowUnitSchema = { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -56610,76 +57423,1446 @@ export type WorkflowSubworkflowUnitSchema = { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - /** - * unit input (type to be specified by the application's execution unit) - */ - input: { - [k: string]: unknown; - }; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "execution"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + application: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * The short name of the application. e.g. qe + */ + shortName: string; + /** + * Application's short description. + */ + summary: string; + /** + * Application version. e.g. 5.3.5 + */ + version: string; + /** + * Application build. e.g. VTST + */ + build: string; + /** + * Whether advanced compute options are present + */ + hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; + }; + executable?: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * _ids of the application this executable belongs to + */ + applicationId: string[]; + /** + * Whether advanced compute options are present + */ + hasAdvancedComputeOptions?: boolean; + }; + flavor?: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * _id of the executable this flavor belongs to + */ + executableId: string; + /** + * name of the executable this flavor belongs to + */ + executableName?: string; + /** + * name of the application this flavor belongs to + */ + applicationName?: string; + input: { + templateId?: string; + templateName?: string; + /** + * name of the resulting input file, if different than template name + */ + name?: string; + }[]; + /** + * list of application versions this flavor supports + */ + supportedApplicationVersions?: string[]; + }; + input: { + template: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * Content of the template. e.g. &CONTROL calculation='scf' ... + */ + content: string; + }; + /** + * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + */ + rendered: string; + isManuallyChanged: boolean; + }[]; + context?: { + name: ContextProviderNameEnum; + isEdited: boolean; + data: {}; + extraData?: {}; + }[]; + } | { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "assignment"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + scope?: string; + /** + * Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + */ + input?: { + /** + * Scope of the variable. e.g. 'global' or 'flowchart_id_2' + */ + scope: string; + /** + * Name of the input data. e.g. total_energy + */ + name: string; + }[]; + /** + * Name of the global variable. e.g. 'x' + */ + operand: string; + /** + * Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + */ + value: string | boolean | number; + } | { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "processing"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + /** + * Contains information about the operation used. + */ + operation: string; + /** + * Contains information about the specific type of the operation used. + */ + operationType: string; + /** + * unit input (type to be specified by the child units) + */ + inputData: { + [k: string]: unknown; + }; + })[]; + model: { + /** + * general type of the model, eg. `dft` + */ + type: string; + /** + * general subtype of the model, eg. `lda` + */ + subtype: string; + method: { + /** + * general type of this method, eg. `pseudopotential` + */ + type: string; + /** + * general subtype of this method, eg. `ultra-soft` + */ + subtype: string; + /** + * Object showing the actual possible precision based on theory and implementation + */ + precision?: {}; + /** + * additional data specific to method, eg. array of pseudopotentials + */ + data?: {}; + }; + [k: string]: unknown; + }; + application: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * The short name of the application. e.g. qe + */ + shortName: string; + /** + * Application's short description. + */ + summary: string; + /** + * Application version. e.g. 5.3.5 + */ + version: string; + /** + * Application build. e.g. VTST + */ + build: string; + /** + * Whether advanced compute options are present + */ + hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; + }; + /** + * Defines whether to store the results/properties extracted in this unit to properties collection + */ + isDraft?: boolean; +} +/** Schema dist/js/schema/workflow/subworkflow/unit.json */ +export type WorkflowSubworkflowUnitSchema = { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "io"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + subtype: "input" | "output" | "dataFrame"; + source: "api" | "db" | "object_storage"; + input: ({ + type: "db_ids"; + /** + * IDs of item to retrieve from db + */ + ids: string[]; + } | { + type: "db_collection"; + /** + * db collection name + */ + collection: string; + /** + * whether the result should be saved as draft + */ + draft: boolean; + } | { + type: "object_storage"; + objectData: { + /** + * Object storage container for the file + */ + CONTAINER?: string; + /** + * Name of the file inside the object storage bucket + */ + NAME?: string; + /** + * Object storage provider + */ + PROVIDER?: string; + /** + * Region for the object container specified in Container + */ + REGION?: string; + /** + * Size of the file in bytes + */ + SIZE?: number; + /** + * Unix timestamp showing when the file was last modified + */ + TIMESTAMP?: string; + }; + /** + * if a file with the same filename already exists, whether to overwrite the old file + */ + overwrite?: boolean; + /** + * Relative path to the directory that contains the file. + */ + pathname?: string; + /** + * Basename of the file + */ + basename?: string; + /** + * What kind of file this is, e.g. image / text + */ + filetype?: string; + })[]; +} | { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "reduce"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + /** + * corresponding map unit flowchart ID + */ + mapFlowchartId: string; + /** + * input information for reduce unit + */ + input: { + /** + * reduce operation, e.g. aggregate + */ + operation: string; + /** + * arguments which are passed to reduce operation function + */ + arguments: string[]; + }[]; +} | { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "condition"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + /** + * Input information for condition. + */ + input: { + /** + * Scope of the variable. e.g. 'global' or 'flowchart_id_2' + */ + scope: string; + /** + * Name of the input data. e.g. total_energy + */ + name: string; + }[]; + /** + * Condition statement. e.g. 'abs(x-total_energy) < 1e-5' + */ + statement: string; + /** + * Flowchart ID reference for `then` part of the condition. + */ + then: string; + /** + * Flowchart ID reference for `else` part of the condition. + */ + else: string; + /** + * Maximum occurrence of the condition, usable for loops. + */ + maxOccurrences: number; + /** + * Throw exception on reaching to maximum occurence. + */ + throwException?: boolean; +} | { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "assertion"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + /** + * The statement to be evaluated + */ + statement: string; + /** + * The error message to be displayed if the assertion fails + */ + errorMessage?: string; +} | { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "execution"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. */ next?: string; /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + application: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * The short name of the application. e.g. qe + */ + shortName: string; + /** + * Application's short description. + */ + summary: string; + /** + * Application version. e.g. 5.3.5 + */ + version: string; + /** + * Application build. e.g. VTST + */ + build: string; + /** + * Whether advanced compute options are present + */ + hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; + }; + executable?: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * _ids of the application this executable belongs to + */ + applicationId: string[]; + /** + * Whether advanced compute options are present + */ + hasAdvancedComputeOptions?: boolean; + }; + flavor?: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * _id of the executable this flavor belongs to + */ + executableId: string; + /** + * name of the executable this flavor belongs to + */ + executableName?: string; + /** + * name of the application this flavor belongs to + */ + applicationName?: string; + input: { + templateId?: string; + templateName?: string; + /** + * name of the resulting input file, if different than template name + */ + name?: string; + }[]; + /** + * list of application versions this flavor supports + */ + supportedApplicationVersions?: string[]; + }; + input: { + template: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * Content of the template. e.g. &CONTROL calculation='scf' ... + */ + content: string; + }; + /** + * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + */ + rendered: string; + isManuallyChanged: boolean; + }[]; + context?: { + name: ContextProviderNameEnum; + isEdited: boolean; + data: {}; + extraData?: {}; + }[]; +} | { + /** + * entity identity */ - enableRender?: boolean; - context?: {}; + _id?: string; /** * entity slug */ @@ -56689,6 +58872,10 @@ export type WorkflowSubworkflowUnitSchema = { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -56696,54 +58883,74 @@ export type WorkflowSubworkflowUnitSchema = { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; -} | { + isDraft?: boolean; /** * type of the unit */ type: "assignment"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + scope?: string; /** * Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. */ @@ -56765,36 +58972,11 @@ export type WorkflowSubworkflowUnitSchema = { * Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) */ value: string | boolean | number; +} | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -56804,6 +58986,10 @@ export type WorkflowSubworkflowUnitSchema = { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -56811,55 +58997,73 @@ export type WorkflowSubworkflowUnitSchema = { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - scope?: string; - [k: string]: unknown; -} | { + isDraft?: boolean; /** * type of the unit */ type: "processing"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Contains information about the operation used. */ @@ -56874,36 +59078,13 @@ export type WorkflowSubworkflowUnitSchema = { inputData: { [k: string]: unknown; }; +}; +/** Schema dist/js/schema/workflow/subworkflow.json */ +export interface SubworkflowSchema { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -56914,89 +59095,222 @@ export type WorkflowSubworkflowUnitSchema = { */ schemaVersion?: string; /** - * Identifies that entity is defaultable + * entity name */ - isDefault?: boolean; + name: string; /** - * names of the pre-processors for this calculation + * Array of characteristic properties calculated by this subworkflow */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + properties?: string[]; /** - * names of the post-processors for this calculation + * Custom keywords prefixed with validate correspond to custom validation methods implemented downstream */ - postProcessors?: ({ + compute?: { /** - * The name of this item. e.g. scf_accuracy + * Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ + queue: "D" | "OR" | "OF" | "OFplus" | "SR" | "SF" | "SFplus" | "GPOF" | "GP2OF" | "GP4OF" | "GPSF" | "GP2SF" | "GP4SF" | "OR4" | "OR8" | "OR16" | "SR4" | "SR8" | "SR16" | "GOF" | "G4OF" | "G8OF" | "GSF" | "G4SF" | "G8SF"; /** - * The name of this item. e.g. scf_accuracy + * number of nodes used for the job inside the RMS. */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ + nodes: number; /** - * The name of this item. e.g. scf_accuracy + * number of CPUs used for the job inside the RMS. */ - name: string; - } | string)[]; - /** - * entity tags - */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; -}; -/** Schema dist/js/schema/workflow/subworkflow.json */ -export interface Subworkflow { + ppn: number; + /** + * Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' + */ + timeLimit: string; + /** + * Convention to use when reasoning about time limits + */ + timeLimitType?: "per single attempt" | "compound"; + /** + * Job is allowed to restart on termination. + */ + isRestartable?: boolean; + /** + * Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. + */ + notify?: string; + /** + * Email address to notify about job execution. + */ + email?: string; + /** + * Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. + */ + maxCPU?: number; + /** + * Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + */ + arguments?: { + /** + * Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. + */ + nimage?: number; + /** + * Each image can be subpartitioned into `pools`, each taking care of a group of k-points. + */ + npools?: number; + /** + * Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). + */ + nband?: number; + /** + * In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. + */ + ntg?: number; + /** + * A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. + */ + ndiag?: number; + }; + /** + * Cluster where the job is executed. Optional on create. Required on job submission. + */ + cluster?: { + /** + * FQDN of the cluster. e.g. master-1-staging.exabyte.io + */ + fqdn?: string; + /** + * Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io + */ + jid?: string; + }; + /** + * Computation error. Optional. Appears only if something happens on jobs execution. + */ + errors?: { + /** + * Domain of the error appearance (internal). + */ + domain?: "rupy" | "alfred" | "celim" | "webapp"; + /** + * Should be a short, unique, machine-readable error code string. e.g. FileNotFound + */ + reason?: string; + /** + * Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' + */ + message?: string; + /** + * Full machine-readable error traceback. e.g. FileNotFound + */ + traceback?: string; + }[]; + /** + * A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + */ + excludeFilesPattern?: string; + }; /** * Contains the Units of the subworkflow */ units: ({ /** - * type of the unit + * entity identity */ - type: "io"; - subtype: "input" | "output" | "dataFrame"; - source: "api" | "db" | "object_storage"; - input: ({ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { /** - * rest API endpoint + * The name of this item. e.g. scf_accuracy */ - endpoint: string; + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { /** - * rest API endpoint options + * The name of this item. e.g. scf_accuracy */ - endpoint_options: {}; + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { /** - * the name of the variable in local scope to save the data under + * The name of this item. e.g. scf_accuracy */ - name?: string; - [k: string]: unknown; - } | ({ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "io"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + subtype: "input" | "output" | "dataFrame"; + source: "api" | "db" | "object_storage"; + input: ({ + type: "db_ids"; /** * IDs of item to retrieve from db */ ids: string[]; - [k: string]: unknown; } | { + type: "db_collection"; /** * db collection name */ @@ -57005,8 +59319,8 @@ export interface Subworkflow { * whether the result should be saved as draft */ draft: boolean; - [k: string]: unknown; - }) | { + } | { + type: "object_storage"; objectData: { /** * Object storage container for the file @@ -57041,46 +59355,20 @@ export interface Subworkflow { * Relative path to the directory that contains the file. */ pathname?: string; - /** - * Basename of the file - */ - basename?: string; - /** - * What kind of file this is, e.g. image / text - */ - filetype?: string; - [k: string]: unknown; - })[]; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; + /** + * Basename of the file + */ + basename?: string; + /** + * What kind of file this is, e.g. image / text + */ + filetype?: string; + })[]; + } | { /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + * entity identity */ - enableRender?: boolean; - context?: {}; + _id?: string; /** * entity slug */ @@ -57090,6 +59378,10 @@ export interface Subworkflow { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -57097,54 +59389,73 @@ export interface Subworkflow { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "reduce"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * corresponding map unit flowchart ID */ @@ -57162,36 +59473,11 @@ export interface Subworkflow { */ arguments: string[]; }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -57201,6 +59487,10 @@ export interface Subworkflow { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -57208,54 +59498,73 @@ export interface Subworkflow { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "condition"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Input information for condition. */ @@ -57289,19 +59598,82 @@ export interface Subworkflow { * Throw exception on reaching to maximum occurence. */ throwException?: boolean; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; /** - * name of the unit. e.g. pw_scf + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. */ - name?: string; + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; /** * Status of the unit. */ status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "assertion"; /** * Whether this unit is the first one to be executed. */ @@ -57318,7 +59690,19 @@ export interface Subworkflow { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; + /** + * The statement to be evaluated + */ + statement: string; + /** + * The error message to be displayed if the assertion fails + */ + errorMessage?: string; + } | { + /** + * entity identity + */ + _id?: string; /** * entity slug */ @@ -57328,6 +59712,10 @@ export interface Subworkflow { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -57335,75 +59723,391 @@ export interface Subworkflow { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ - type: "assertion"; + type: "execution"; /** - * The statement to be evaluated + * Whether this unit is the first one to be executed. */ - statement: string; + head?: boolean; /** - * The error message to be displayed if the assertion fails + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. */ - errorMessage?: string; + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + application: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * The short name of the application. e.g. qe + */ + shortName: string; + /** + * Application's short description. + */ + summary: string; + /** + * Application version. e.g. 5.3.5 + */ + version: string; + /** + * Application build. e.g. VTST + */ + build: string; + /** + * Whether advanced compute options are present + */ + hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; + }; + executable?: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * _ids of the application this executable belongs to + */ + applicationId: string[]; + /** + * Whether advanced compute options are present + */ + hasAdvancedComputeOptions?: boolean; + }; + flavor?: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * _id of the executable this flavor belongs to + */ + executableId: string; + /** + * name of the executable this flavor belongs to + */ + executableName?: string; + /** + * name of the application this flavor belongs to + */ + applicationName?: string; + input: { + templateId?: string; + templateName?: string; + /** + * name of the resulting input file, if different than template name + */ + name?: string; + }[]; + /** + * list of application versions this flavor supports + */ + supportedApplicationVersions?: string[]; + }; + input: { + template: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * Content of the template. e.g. &CONTROL calculation='scf' ... + */ + content: string; + }; + /** + * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + */ + rendered: string; + isManuallyChanged: boolean; + }[]; + context?: { + name: ContextProviderNameEnum; + isEdited: boolean; + data: {}; + extraData?: {}; + }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; /** - * name of the unit. e.g. pw_scf + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name */ name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; /** * Status of the unit. */ status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "assignment"; /** * Whether this unit is the first one to be executed. */ @@ -57411,16 +60115,42 @@ export interface Subworkflow { /** * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. */ - flowchartId: string; + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + scope?: string; + /** + * Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + */ + input?: { + /** + * Scope of the variable. e.g. 'global' or 'flowchart_id_2' + */ + scope: string; + /** + * Name of the input data. e.g. total_energy + */ + name: string; + }[]; + /** + * Name of the global variable. e.g. 'x' + */ + operand: string; /** - * Next unit's flowchartId. If empty, the current unit is the last. + * Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) */ - next?: string; + value: string | boolean | number; + } | { /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + * entity identity */ - enableRender?: boolean; - context?: {}; + _id?: string; /** * entity slug */ @@ -57430,6 +60160,10 @@ export interface Subworkflow { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -57437,403 +60171,706 @@ export interface Subworkflow { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ - type: "execution"; - application: { - /** - * The short name of the application. e.g. qe - */ - shortName?: string; - /** - * Application's short description. - */ - summary?: string; - /** - * Application version. e.g. 5.3.5 - */ - version?: string; - /** - * Application build. e.g. VTST - */ - build?: string; - /** - * Whether advanced compute options are present - */ - hasAdvancedComputeOptions?: boolean; - /** - * Whether licensing is present - */ - isLicensed?: boolean; - /** - * entity identity - */ - _id?: string; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * entity name - */ - name?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; + type: "processing"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + /** + * Contains information about the operation used. + */ + operation: string; + /** + * Contains information about the specific type of the operation used. + */ + operationType: string; + /** + * unit input (type to be specified by the child units) + */ + inputData: { [k: string]: unknown; }; - executable?: { - /** - * The name of the executable. e.g. pw.x - */ - name: string; - /** - * _ids of the application this executable belongs to - */ - applicationId?: string[]; - /** - * Whether advanced compute options are present - */ - hasAdvancedComputeOptions?: boolean; - /** - * entity identity - */ - _id?: string; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - }; - flavor?: { - /** - * _id of the executable this flavor belongs to - */ - executableId?: string; - /** - * name of the executable this flavor belongs to - */ - executableName?: string; - /** - * name of the application this flavor belongs to - */ - applicationName?: string; - input?: { - templateId?: string; - templateName?: string; - /** - * name of the resulting input file, if different than template name - */ - name?: string; - }[]; - /** - * list of application versions this flavor supports - */ - supportedApplicationVersions?: string[]; - /** - * entity identity - */ - _id?: string; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * entity name - */ - name?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; + })[]; + model: { + /** + * general type of the model, eg. `dft` + */ + type: string; + /** + * general subtype of the model, eg. `lda` + */ + subtype: string; + method: { /** - * names of the pre-processors for this calculation + * general type of this method, eg. `pseudopotential` */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + type: string; /** - * names of the post-processors for this calculation + * general subtype of this method, eg. `ultra-soft` */ - postProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + subtype: string; /** - * names of the monitors for this calculation + * Object showing the actual possible precision based on theory and implementation */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + precision?: {}; /** - * names of the results for this calculation + * additional data specific to method, eg. array of pseudopotentials */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - }; - /** - * unit input (type to be specified by the application's execution unit) - */ - input: { - [k: string]: unknown; + data?: {}; }; + [k: string]: unknown; + }; + application: { /** * entity identity */ _id?: string; - isDraft?: boolean; /** - * name of the unit. e.g. pw_scf + * entity slug */ - name?: string; + slug?: string; + systemName?: string; /** - * Status of the unit. + * entity's schema version. Used to distinct between different schemas. */ - status?: "idle" | "active" | "warning" | "error" | "finished"; + schemaVersion?: string; /** - * Whether this unit is the first one to be executed. + * entity name */ - head?: boolean; + name: string; /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + * Identifies that entity is defaultable */ - flowchartId: string; + isDefault?: boolean; /** - * Next unit's flowchartId. If empty, the current unit is the last. + * The short name of the application. e.g. qe */ - next?: string; + shortName: string; /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + * Application's short description. */ - enableRender?: boolean; - context?: {}; + summary: string; /** - * entity slug + * Application version. e.g. 5.3.5 */ - slug?: string; - systemName?: string; + version: string; /** - * entity's schema version. Used to distinct between different schemas. + * Application build. e.g. VTST */ - schemaVersion?: string; + build: string; /** - * Identifies that entity is defaultable + * Whether advanced compute options are present */ - isDefault?: boolean; + hasAdvancedComputeOptions?: boolean; /** - * names of the pre-processors for this calculation + * Whether licensing is present */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + isLicensed?: boolean; + }; + /** + * Defines whether to store the results/properties extracted in this unit to properties collection + */ + isDraft?: boolean; +} +/** Schema dist/js/schema/workflow/unit/assertion.json */ +export interface AssertionUnitSchema { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "assertion"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + /** + * The statement to be evaluated + */ + statement: string; + /** + * The error message to be displayed if the assertion fails + */ + errorMessage?: string; +} +/** Schema dist/js/schema/workflow/unit/assignment.json */ +export interface AssignmentUnitSchema { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "assignment"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + scope?: string; + /** + * Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + */ + input?: { + /** + * Scope of the variable. e.g. 'global' or 'flowchart_id_2' + */ + scope: string; + /** + * Name of the input data. e.g. total_energy + */ + name: string; + }[]; + /** + * Name of the global variable. e.g. 'x' + */ + operand: string; + /** + * Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + */ + value: string | boolean | number; +} +/** Schema dist/js/schema/workflow/unit/base.json */ +export interface WorkflowBaseUnitSchema { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { /** - * names of the post-processors for this calculation + * The name of this item. e.g. scf_accuracy */ - postProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { /** - * names of the monitors for this calculation + * The name of this item. e.g. scf_accuracy */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { /** - * names of the results for this calculation + * The name of this item. e.g. scf_accuracy */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { /** - * entity tags + * The name of this item. e.g. scf_accuracy */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; - } | { + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: string; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; +} +/** Schema dist/js/schema/workflow/unit/condition.json */ +export interface ConditionUnitSchema { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { /** - * type of the unit + * The name of this item. e.g. scf_accuracy */ - type: "assignment"; + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { /** - * Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + * The name of this item. e.g. scf_accuracy */ - input?: { - /** - * Scope of the variable. e.g. 'global' or 'flowchart_id_2' - */ - scope: string; - /** - * Name of the input data. e.g. total_energy - */ - name: string; - }[]; + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { /** - * Name of the global variable. e.g. 'x' + * The name of this item. e.g. scf_accuracy */ - operand: string; + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { /** - * Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + * The name of this item. e.g. scf_accuracy */ - value: string | boolean | number; + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "condition"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + /** + * Input information for condition. + */ + input: { /** - * entity identity + * Scope of the variable. e.g. 'global' or 'flowchart_id_2' */ - _id?: string; - isDraft?: boolean; + scope: string; /** - * name of the unit. e.g. pw_scf + * Name of the input data. e.g. total_energy */ name: string; + }[]; + /** + * Condition statement. e.g. 'abs(x-total_energy) < 1e-5' + */ + statement: string; + /** + * Flowchart ID reference for `then` part of the condition. + */ + then: string; + /** + * Flowchart ID reference for `else` part of the condition. + */ + else: string; + /** + * Maximum occurrence of the condition, usable for loops. + */ + maxOccurrences: number; + /** + * Throw exception on reaching to maximum occurence. + */ + throwException?: boolean; +} +/** Schema dist/js/schema/workflow/unit/execution.json */ +export interface ExecutionUnitSchemaBase { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { /** - * Status of the unit. + * The name of this item. e.g. scf_accuracy */ - status?: "idle" | "active" | "warning" | "error" | "finished"; + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { /** - * Whether this unit is the first one to be executed. + * The name of this item. e.g. scf_accuracy */ - head?: boolean; + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + * The name of this item. e.g. scf_accuracy */ - flowchartId: string; + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { /** - * Next unit's flowchartId. If empty, the current unit is the last. + * The name of this item. e.g. scf_accuracy */ - next?: string; + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "execution"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + application: { /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + * entity identity */ - enableRender?: boolean; - context?: {}; + _id?: string; /** * entity slug */ @@ -57844,105 +60881,43 @@ export interface Subworkflow { */ schemaVersion?: string; /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation + * entity name */ - postProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + name: string; /** - * names of the monitors for this calculation + * Identifies that entity is defaultable */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + isDefault?: boolean; /** - * names of the results for this calculation + * The short name of the application. e.g. qe */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + shortName: string; /** - * entity tags + * Application's short description. */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - scope?: string; - [k: string]: unknown; - } | { + summary: string; /** - * type of the unit + * Application version. e.g. 5.3.5 */ - type: "processing"; + version: string; /** - * Contains information about the operation used. + * Application build. e.g. VTST */ - operation: string; + build: string; /** - * Contains information about the specific type of the operation used. + * Whether advanced compute options are present */ - operationType: string; + hasAdvancedComputeOptions?: boolean; /** - * unit input (type to be specified by the child units) + * Whether licensing is present */ - inputData: { - [k: string]: unknown; - }; + isLicensed?: boolean; + }; + executable?: { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -57952,6 +60927,10 @@ export interface Subworkflow { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -57959,104 +60938,49 @@ export interface Subworkflow { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - /** - * entity tags - */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; }[]; - [k: string]: unknown; - })[]; - model: { - /** - * general type of the model, eg. `dft` - */ - type: string; - /** - * general subtype of the model, eg. `lda` - */ - subtype: string; - method: { - /** - * general type of this method, eg. `pseudopotential` - */ - type: string; - /** - * general subtype of this method, eg. `ultra-soft` - */ - subtype: string; - /** - * Object showing the actual possible precision based on theory and implementation - */ - precision?: {}; - /** - * additional data specific to method, eg. array of pseudopotentials - */ - data?: {}; - }; - [k: string]: unknown; - }; - application: { - /** - * The short name of the application. e.g. qe - */ - shortName?: string; - /** - * Application's short description. - */ - summary?: string; - /** - * Application version. e.g. 5.3.5 - */ - version?: string; /** - * Application build. e.g. VTST + * _ids of the application this executable belongs to */ - build?: string; + applicationId: string[]; /** * Whether advanced compute options are present */ hasAdvancedComputeOptions?: boolean; - /** - * Whether licensing is present - */ - isLicensed?: boolean; + }; + flavor?: { /** * entity identity */ @@ -58073,178 +60997,311 @@ export interface Subworkflow { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; - }; - /** - * Defines whether to store the results/properties extracted in this unit to properties collection - */ - isDraft?: boolean; - /** - * subworkflow identity - */ - _id?: string; - /** - * Human-readable name of the subworkflow. e.g. Total-energy - */ - name: string; - /** - * Array of characteristic properties calculated by this subworkflow - */ - properties?: string[]; - /** - * Custom keywords prefixed with validate correspond to custom validation methods implemented downstream - */ - compute?: { /** - * Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. - */ - queue: "D" | "OR" | "OF" | "OFplus" | "SR" | "SF" | "SFplus" | "GPOF" | "GP2OF" | "GP4OF" | "GPSF" | "GP2SF" | "GP4SF" | "OR4" | "OR8" | "OR16" | "SR4" | "SR8" | "SR16" | "GOF" | "G4OF" | "G8OF" | "GSF" | "G4SF" | "G8SF"; - /** - * number of nodes used for the job inside the RMS. - */ - nodes: number; - /** - * number of CPUs used for the job inside the RMS. + * names of the pre-processors for this calculation */ - ppn: number; + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' + * names of the post-processors for this calculation */ - timeLimit: string; + postProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * Convention to use when reasoning about time limits + * names of the monitors for this calculation */ - timeLimitType?: "per single attempt" | "compound"; + monitors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * Job is allowed to restart on termination. + * names of the results for this calculation */ - isRestartable?: boolean; + results: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. + * _id of the executable this flavor belongs to */ - notify?: string; + executableId: string; /** - * Email address to notify about job execution. + * name of the executable this flavor belongs to */ - email?: string; + executableName?: string; /** - * Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. + * name of the application this flavor belongs to */ - maxCPU?: number; + applicationName?: string; + input: { + templateId?: string; + templateName?: string; + /** + * name of the resulting input file, if different than template name + */ + name?: string; + }[]; /** - * Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + * list of application versions this flavor supports */ - arguments?: { + supportedApplicationVersions?: string[]; + }; + input: { + template: { /** - * Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. + * entity identity */ - nimage?: number; + _id?: string; /** - * Each image can be subpartitioned into `pools`, each taking care of a group of k-points. + * entity slug */ - npools?: number; + slug?: string; + systemName?: string; /** - * Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). + * entity's schema version. Used to distinct between different schemas. */ - nband?: number; + schemaVersion?: string; /** - * In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. + * entity name */ - ntg?: number; + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. + * Content of the template. e.g. &CONTROL calculation='scf' ... */ - ndiag?: number; + content: string; }; /** - * Cluster where the job is executed. Optional on create. Required on job submission. + * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... */ - cluster?: { + rendered: string; + isManuallyChanged: boolean; + }[]; + context?: { + name: ContextProviderNameEnum; + isEdited: boolean; + data: {}; + extraData?: {}; + }[]; +} +/** Schema dist/js/schema/workflow/unit/input/_input.json */ +export interface ExecutionUnitInputSchema { + input?: ({ + template: { /** - * FQDN of the cluster. e.g. master-1-staging.exabyte.io + * entity identity */ - fqdn?: string; + _id?: string; /** - * Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io + * entity slug */ - jid?: string; - }; - /** - * Computation error. Optional. Appears only if something happens on jobs execution. - */ - errors?: { + slug?: string; + systemName?: string; /** - * Domain of the error appearance (internal). + * entity's schema version. Used to distinct between different schemas. */ - domain?: "rupy" | "alfred" | "celim" | "webapp"; + schemaVersion?: string; /** - * Should be a short, unique, machine-readable error code string. e.g. FileNotFound + * entity name */ - reason?: string; + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; /** - * Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' + * Content of the template. e.g. &CONTROL calculation='scf' ... */ - message?: string; + content: string; + }; + /** + * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + */ + rendered: string; + isManuallyChanged: boolean; + } | { + templateId?: string; + templateName?: string; + /** + * name of the resulting input file, if different than template name + */ + name?: string; + })[]; +} +/** Schema dist/js/schema/workflow/unit/input/_inputItem.json */ +export interface ExecutionUnitInputItemSchema { + template: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { /** - * Full machine-readable error traceback. e.g. FileNotFound + * The name of this item. e.g. scf_accuracy */ - traceback?: string; + name: string; }[]; /** - * A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + * Content of the template. e.g. &CONTROL calculation='scf' ... */ - excludeFilesPattern?: string; + content: string; }; + /** + * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + */ + rendered: string; + isManuallyChanged: boolean; } -/** Schema dist/js/schema/workflow/unit/assertion.json */ -export interface AssertionUnitSchema { +/** Schema dist/js/schema/workflow/unit/input/_inputItemId.json */ +export interface ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines { + templateId?: string; + templateName?: string; /** - * type of the unit + * name of the resulting input file, if different than template name */ - type: "assertion"; + name?: string; +} +/** Schema dist/js/schema/workflow/unit/input/_inputItemScope.json */ +export interface WorkflowUnitInputSchema { /** - * The statement to be evaluated + * Scope of the variable. e.g. 'global' or 'flowchart_id_2' */ - statement: string; + scope: string; /** - * The error message to be displayed if the assertion fails + * Name of the input data. e.g. total_energy */ - errorMessage?: string; + name: string; +} +/** Schema dist/js/schema/workflow/unit/input/_map_input/values.json */ +export interface UnitValuesSchema { + values?: string; +} +/** Schema dist/js/schema/workflow/unit/input/_map_input.json */ +export interface UnitMapInputSchema { + target?: string; + values?: (number | string | {})[]; + useValues?: boolean; + scope?: string; + name?: string; +} +/** Schema dist/js/schema/workflow/unit/io/db_collection.json */ +export interface DataIODatabaseCollectionInputOutputSchema { + type: "db_collection"; /** - * entity identity + * db collection name */ - _id?: string; - isDraft?: boolean; + collection: string; /** - * name of the unit. e.g. pw_scf + * whether the result should be saved as draft */ - name: string; + draft: boolean; +} +/** Schema dist/js/schema/workflow/unit/io/db_ids.json */ +export interface DataIODatabaseIdsInputOutputSchema { + type: "db_ids"; /** - * Status of the unit. + * IDs of item to retrieve from db */ - status?: "idle" | "active" | "warning" | "error" | "finished"; + ids: string[]; +} +/** Schema dist/js/schema/workflow/unit/io/object_storage.json */ +export interface ObjectStorageIoSchema { + type: "object_storage"; + objectData: { + /** + * Object storage container for the file + */ + CONTAINER?: string; + /** + * Name of the file inside the object storage bucket + */ + NAME?: string; + /** + * Object storage provider + */ + PROVIDER?: string; + /** + * Region for the object container specified in Container + */ + REGION?: string; + /** + * Size of the file in bytes + */ + SIZE?: number; + /** + * Unix timestamp showing when the file was last modified + */ + TIMESTAMP?: string; + }; /** - * Whether this unit is the first one to be executed. + * if a file with the same filename already exists, whether to overwrite the old file */ - head?: boolean; + overwrite?: boolean; /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + * Relative path to the directory that contains the file. */ - flowchartId: string; + pathname?: string; /** - * Next unit's flowchartId. If empty, the current unit is the last. + * Basename of the file */ - next?: string; + basename?: string; /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + * What kind of file this is, e.g. image / text */ - enableRender?: boolean; - context?: {}; + filetype?: string; +} +/** Schema dist/js/schema/workflow/unit/io.json */ +export interface DataIOUnitSchema { + /** + * entity identity + */ + _id?: string; /** * entity slug */ @@ -58254,6 +61311,10 @@ export interface AssertionUnitSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -58261,90 +61322,57 @@ export interface AssertionUnitSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; -} -/** Schema dist/js/schema/workflow/unit/assignment.json */ -export interface AssignmentUnitSchema { - /** - * type of the unit - */ - type: "assignment"; - /** - * Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. - */ - input?: { - /** - * Scope of the variable. e.g. 'global' or 'flowchart_id_2' - */ - scope: string; - /** - * Name of the input data. e.g. total_energy - */ - name: string; - }[]; - /** - * Name of the global variable. e.g. 'x' - */ - operand: string; - /** - * Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) - */ - value: string | boolean | number; - /** - * entity identity - */ - _id?: string; isDraft?: boolean; /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. + * type of the unit */ - status?: "idle" | "active" | "warning" | "error" | "finished"; + type: "io"; /** * Whether this unit is the first one to be executed. */ @@ -58361,7 +61389,76 @@ export interface AssignmentUnitSchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; + subtype: "input" | "output" | "dataFrame"; + source: "api" | "db" | "object_storage"; + input: ({ + type: "db_ids"; + /** + * IDs of item to retrieve from db + */ + ids: string[]; + } | { + type: "db_collection"; + /** + * db collection name + */ + collection: string; + /** + * whether the result should be saved as draft + */ + draft: boolean; + } | { + type: "object_storage"; + objectData: { + /** + * Object storage container for the file + */ + CONTAINER?: string; + /** + * Name of the file inside the object storage bucket + */ + NAME?: string; + /** + * Object storage provider + */ + PROVIDER?: string; + /** + * Region for the object container specified in Container + */ + REGION?: string; + /** + * Size of the file in bytes + */ + SIZE?: number; + /** + * Unix timestamp showing when the file was last modified + */ + TIMESTAMP?: string; + }; + /** + * if a file with the same filename already exists, whether to overwrite the old file + */ + overwrite?: boolean; + /** + * Relative path to the directory that contains the file. + */ + pathname?: string; + /** + * Basename of the file + */ + basename?: string; + /** + * What kind of file this is, e.g. image / text + */ + filetype?: string; + })[]; +} +/** Schema dist/js/schema/workflow/unit/map.json */ +export interface MapUnitSchema { + /** + * entity identity + */ + _id?: string; /** * entity slug */ @@ -58371,6 +61468,10 @@ export interface AssignmentUnitSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -58378,70 +61479,57 @@ export interface AssignmentUnitSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - scope?: string; - [k: string]: unknown; -} -/** Schema dist/js/schema/workflow/unit/base.json */ -export interface WorkflowBaseUnitSchema { - /** - * entity identity - */ - _id?: string; isDraft?: boolean; /** * type of the unit */ - type: string; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; + type: "map"; /** * Whether this unit is the first one to be executed. */ @@ -58458,77 +61546,52 @@ export interface WorkflowBaseUnitSchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; /** - * Identifies that entity is defaultable + * Id of workflow to run inside map */ - isDefault?: boolean; + workflowId: string; /** - * names of the pre-processors for this calculation + * Input information for map. */ - preProcessors?: ({ + input: { /** - * The name of this item. e.g. scf_accuracy + * Name of the target variable to substitute using the values below. e.g. K_POINTS */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ + target: string; /** - * The name of this item. e.g. scf_accuracy + * Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given. */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ + scope?: string; /** - * The name of this item. e.g. scf_accuracy + * Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given. */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ + name?: string; /** - * The name of this item. e.g. scf_accuracy + * Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution */ - name: string; - } | string)[]; + values?: (string | number | {})[]; + useValues?: boolean; + }; +} +/** Schema dist/js/schema/workflow/unit/mixins/assertion.json */ +export interface AssertionUnitMixinSchema { + type?: "assertion"; /** - * entity tags + * The statement to be evaluated */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; -} -/** Schema dist/js/schema/workflow/unit/condition.json */ -export interface ConditionUnitSchema { + statement: string; /** - * type of the unit + * The error message to be displayed if the assertion fails */ - type: "condition"; + errorMessage?: string; +} +/** Schema dist/js/schema/workflow/unit/mixins/assignment.json */ +export interface AssignmentUnitMixinSchema { + type?: "assignment"; /** - * Input information for condition. + * Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. */ - input: { + input?: { /** * Scope of the variable. e.g. 'global' or 'flowchart_id_2' */ @@ -58539,30 +61602,21 @@ export interface ConditionUnitSchema { name: string; }[]; /** - * Condition statement. e.g. 'abs(x-total_energy) < 1e-5' - */ - statement: string; - /** - * Flowchart ID reference for `then` part of the condition. - */ - then: string; - /** - * Flowchart ID reference for `else` part of the condition. - */ - else: string; - /** - * Maximum occurrence of the condition, usable for loops. + * Name of the global variable. e.g. 'x' */ - maxOccurrences: number; + operand: string; /** - * Throw exception on reaching to maximum occurence. + * Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) */ - throwException?: boolean; + value: string | boolean | number; +} +/** Schema dist/js/schema/workflow/unit/mixins/base.json */ +export interface WorkflowBaseUnitMixinSchema { + isDraft?: boolean; /** - * entity identity + * type of the unit */ - _id?: string; - isDraft?: boolean; + type: string; /** * name of the unit. e.g. pw_scf */ @@ -58582,103 +61636,53 @@ export interface ConditionUnitSchema { /** * Next unit's flowchartId. If empty, the current unit is the last. */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; + next?: string; /** - * Identifies that entity is defaultable + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ - isDefault?: boolean; + enableRender?: boolean; +} +/** Schema dist/js/schema/workflow/unit/mixins/condition.json */ +export interface ConditionUnitMixinSchema { + type?: "condition"; /** - * names of the pre-processors for this calculation + * Input information for condition. */ - preProcessors?: ({ + input: { /** - * The name of this item. e.g. scf_accuracy + * Scope of the variable. e.g. 'global' or 'flowchart_id_2' */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ + scope: string; /** - * The name of this item. e.g. scf_accuracy + * Name of the input data. e.g. total_energy */ name: string; - } | string)[]; + }[]; /** - * names of the monitors for this calculation + * Condition statement. e.g. 'abs(x-total_energy) < 1e-5' */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + statement: string; /** - * names of the results for this calculation + * Flowchart ID reference for `then` part of the condition. */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + then: string; /** - * entity tags + * Flowchart ID reference for `else` part of the condition. */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; -} -/** Schema dist/js/schema/workflow/unit/execution.json */ -export interface ExecutionUnitSchemaBase { + else: string; /** - * type of the unit + * Maximum occurrence of the condition, usable for loops. */ - type: "execution"; + maxOccurrences: number; + /** + * Throw exception on reaching to maximum occurence. + */ + throwException?: boolean; +} +/** Schema dist/js/schema/workflow/unit/mixins/execution.json */ +export interface ExecutionUnitMixinSchema { + type?: "execution"; application: { - /** - * The short name of the application. e.g. qe - */ - shortName?: string; - /** - * Application's short description. - */ - summary?: string; - /** - * Application version. e.g. 5.3.5 - */ - version?: string; - /** - * Application build. e.g. VTST - */ - build?: string; - /** - * Whether advanced compute options are present - */ - hasAdvancedComputeOptions?: boolean; - /** - * Whether licensing is present - */ - isLicensed?: boolean; /** * entity identity */ @@ -58695,26 +61699,37 @@ export interface ExecutionUnitSchemaBase { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; - }; - executable?: { /** - * The name of the executable. e.g. pw.x + * The short name of the application. e.g. qe */ - name: string; + shortName: string; /** - * _ids of the application this executable belongs to + * Application's short description. + */ + summary: string; + /** + * Application version. e.g. 5.3.5 + */ + version: string; + /** + * Application build. e.g. VTST */ - applicationId?: string[]; + build: string; /** * Whether advanced compute options are present */ hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; + }; + executable?: { /** * entity identity */ @@ -58728,6 +61743,10 @@ export interface ExecutionUnitSchemaBase { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -58735,65 +61754,49 @@ export interface ExecutionUnitSchemaBase { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - flavor?: { - /** - * _id of the executable this flavor belongs to - */ - executableId?: string; - /** - * name of the executable this flavor belongs to - */ - executableName?: string; + }[]; /** - * name of the application this flavor belongs to + * _ids of the application this executable belongs to */ - applicationName?: string; - input?: { - templateId?: string; - templateName?: string; - /** - * name of the resulting input file, if different than template name - */ - name?: string; - }[]; + applicationId: string[]; /** - * list of application versions this flavor supports + * Whether advanced compute options are present */ - supportedApplicationVersions?: string[]; + hasAdvancedComputeOptions?: boolean; + }; + flavor?: { /** * entity identity */ @@ -58810,7 +61813,7 @@ export interface ExecutionUnitSchemaBase { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -58818,316 +61821,123 @@ export interface ExecutionUnitSchemaBase { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - /** - * unit input (type to be specified by the application's execution unit) - */ - input: { - [k: string]: unknown; - }; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ + }[]; /** - * The name of this item. e.g. scf_accuracy + * _id of the executable this flavor belongs to */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ + executableId: string; /** - * The name of this item. e.g. scf_accuracy + * name of the executable this flavor belongs to */ - name: string; - } | string)[]; - /** - * entity tags - */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; -} -/** Schema dist/js/schema/workflow/unit/input/_input.json */ -export interface ExecutionUnitInputSchemaForPhysicsBasedSimulationEngines { - input?: ({ + executableName?: string; /** - * Input file name. e.g. pw_scf.in + * name of the application this flavor belongs to */ - name: string; + applicationName?: string; + input: { + templateId?: string; + templateName?: string; + /** + * name of the resulting input file, if different than template name + */ + name?: string; + }[]; /** - * Content of the input file. e.g. &CONTROL calculation='scf' ... + * list of application versions this flavor supports */ - content: string; + supportedApplicationVersions?: string[]; + }; + input: { + template: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * Content of the template. e.g. &CONTROL calculation='scf' ... + */ + content: string; + }; /** * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... */ - rendered?: string; - } | { - templateId?: string; - templateName?: string; - /** - * name of the resulting input file, if different than template name - */ - name?: string; - })[]; -} -/** Schema dist/js/schema/workflow/unit/input/_inputItem.json */ -export interface ExecutionUnitInputItemSchemaForPhysicsBasedSimulationEngines { - /** - * Input file name. e.g. pw_scf.in - */ - name: string; - /** - * Content of the input file. e.g. &CONTROL calculation='scf' ... - */ - content: string; - /** - * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... - */ - rendered?: string; -} -/** Schema dist/js/schema/workflow/unit/input/_inputItemId.json */ -export interface ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines { - templateId?: string; - templateName?: string; - /** - * name of the resulting input file, if different than template name - */ - name?: string; -} -/** Schema dist/js/schema/workflow/unit/input/_inputItemScope.json */ -export interface WorkflowUnitInputSchema { - /** - * Scope of the variable. e.g. 'global' or 'flowchart_id_2' - */ - scope: string; - /** - * Name of the input data. e.g. total_energy - */ - name: string; -} -/** Schema dist/js/schema/workflow/unit/input/_map_input/values.json */ -export interface UnitValuesSchema { - values?: string; -} -/** Schema dist/js/schema/workflow/unit/input/_map_input.json */ -export interface UnitMapInputSchema { - target?: string; - values?: (number | string | {})[]; - useValues?: boolean; - scope?: string; - name?: string; -} -/** Schema dist/js/schema/workflow/unit/io/api.json */ -export interface DataIORestAPIInputSchema { - /** - * rest API endpoint - */ - endpoint: string; - /** - * rest API endpoint options - */ - endpoint_options: {}; - /** - * the name of the variable in local scope to save the data under - */ - name?: string; - [k: string]: unknown; -} -/** Schema dist/js/schema/workflow/unit/io/db.json */ -export type DataIODatabaseInputOutputSchema = { - /** - * IDs of item to retrieve from db - */ - ids: string[]; - [k: string]: unknown; -} | { - /** - * db collection name - */ - collection: string; - /** - * whether the result should be saved as draft - */ - draft: boolean; - [k: string]: unknown; -}; -/** Schema dist/js/schema/workflow/unit/io/object_storage.json */ -export interface ObjectStorageIoSchema { - objectData: { - /** - * Object storage container for the file - */ - CONTAINER?: string; - /** - * Name of the file inside the object storage bucket - */ - NAME?: string; - /** - * Object storage provider - */ - PROVIDER?: string; - /** - * Region for the object container specified in Container - */ - REGION?: string; - /** - * Size of the file in bytes - */ - SIZE?: number; - /** - * Unix timestamp showing when the file was last modified - */ - TIMESTAMP?: string; - }; - /** - * if a file with the same filename already exists, whether to overwrite the old file - */ - overwrite?: boolean; - /** - * Relative path to the directory that contains the file. - */ - pathname?: string; - /** - * Basename of the file - */ - basename?: string; - /** - * What kind of file this is, e.g. image / text - */ - filetype?: string; - [k: string]: unknown; + rendered: string; + isManuallyChanged: boolean; + }[]; + context?: { + name: ContextProviderNameEnum; + isEdited: boolean; + data: {}; + extraData?: {}; + }[]; } -/** Schema dist/js/schema/workflow/unit/io.json */ -export interface DataIOUnitSchema { - /** - * type of the unit - */ - type: "io"; +/** Schema dist/js/schema/workflow/unit/mixins/io.json */ +export interface DataIOUnitMixinSchema { + type?: "io"; subtype: "input" | "output" | "dataFrame"; source: "api" | "db" | "object_storage"; input: ({ - /** - * rest API endpoint - */ - endpoint: string; - /** - * rest API endpoint options - */ - endpoint_options: {}; - /** - * the name of the variable in local scope to save the data under - */ - name?: string; - [k: string]: unknown; - } | ({ + type: "db_ids"; /** * IDs of item to retrieve from db */ ids: string[]; - [k: string]: unknown; } | { + type: "db_collection"; /** * db collection name */ @@ -59136,8 +61946,8 @@ export interface DataIOUnitSchema { * whether the result should be saved as draft */ draft: boolean; - [k: string]: unknown; - }) | { + } | { + type: "object_storage"; objectData: { /** * Object storage container for the file @@ -59180,104 +61990,11 @@ export interface DataIOUnitSchema { * What kind of file this is, e.g. image / text */ filetype?: string; - [k: string]: unknown; })[]; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * entity tags - */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; } -/** Schema dist/js/schema/workflow/unit/map.json */ -export interface MapUnitSchema { - /** - * type of the unit - */ - type: "map"; +/** Schema dist/js/schema/workflow/unit/mixins/map.json */ +export interface MapUnitMixinSchema { + type?: "map"; /** * Id of workflow to run inside map */ @@ -59304,36 +62021,56 @@ export interface MapUnitSchema { values?: (string | number | {})[]; useValues?: boolean; }; +} +/** Schema dist/js/schema/workflow/unit/mixins/processing.json */ +export interface ProcessingUnitMixinSchema { + type?: "processing"; /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf + * Contains information about the operation used. */ - name?: string; + operation: string; /** - * Status of the unit. + * Contains information about the specific type of the operation used. */ - status?: "idle" | "active" | "warning" | "error" | "finished"; + operationType: string; /** - * Whether this unit is the first one to be executed. + * unit input (type to be specified by the child units) */ - head?: boolean; + inputData: { + [k: string]: unknown; + }; +} +/** Schema dist/js/schema/workflow/unit/mixins/reduce.json */ +export interface ReduceUnitMixinSchema { + type?: "reduce"; /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + * corresponding map unit flowchart ID */ - flowchartId: string; + mapFlowchartId: string; /** - * Next unit's flowchartId. If empty, the current unit is the last. + * input information for reduce unit */ - next?: string; + input: { + /** + * reduce operation, e.g. aggregate + */ + operation: string; + /** + * arguments which are passed to reduce operation function + */ + arguments: string[]; + }[]; +} +/** Schema dist/js/schema/workflow/unit/mixins/subworkflow.json */ +export interface SubworkflowUnitMixinSchema { + type?: "subworkflow"; +} +/** Schema dist/js/schema/workflow/unit/processing.json */ +export interface ProcessingUnitSchema { /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + * entity identity */ - enableRender?: boolean; - context?: {}; + _id?: string; /** * entity slug */ @@ -59343,6 +62080,10 @@ export interface MapUnitSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -59350,56 +62091,73 @@ export interface MapUnitSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; -} -/** Schema dist/js/schema/workflow/unit/processing.json */ -export interface ProcessingUnitSchema { + isDraft?: boolean; /** * type of the unit */ type: "processing"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Contains information about the operation used. */ @@ -59414,36 +62172,13 @@ export interface ProcessingUnitSchema { inputData: { [k: string]: unknown; }; +} +/** Schema dist/js/schema/workflow/unit/reduce.json */ +export interface ReduceUnitSchema { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -59453,6 +62188,10 @@ export interface ProcessingUnitSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -59460,56 +62199,73 @@ export interface ProcessingUnitSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; -} -/** Schema dist/js/schema/workflow/unit/reduce.json */ -export interface ReduceUnitSchema { + isDraft?: boolean; /** * type of the unit */ type: "reduce"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * corresponding map unit flowchart ID */ @@ -59527,36 +62283,13 @@ export interface ReduceUnitSchema { */ arguments: string[]; }[]; +} +/** Schema dist/js/schema/workflow/unit/subworkflow.json */ +export interface SubworkflowUnitSchema { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -59566,6 +62299,10 @@ export interface ReduceUnitSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -59573,134 +62310,57 @@ export interface ReduceUnitSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; -} -/** Schema dist/js/schema/workflow/unit/runtime/_runtime_item_full_object.json */ -export interface FullResultSchema { - /** - * The name of this item. e.g. 'my_custom_property. ' - */ - name: string; -} -/** Schema dist/js/schema/workflow/unit/runtime/_runtime_item_name_object.json */ -export interface NameResultSchema { - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; -} -/** Schema dist/js/schema/workflow/unit/runtime/_runtime_item_string.json */ -/** - * name of runtime item in shortened notation - */ -export type RuntimeItemString = string; -/** Schema dist/js/schema/workflow/unit/runtime/runtime_item.json */ -export type RuntimeItemSchema = { - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; -} | string; -/** Schema dist/js/schema/workflow/unit/runtime/runtime_items.json */ -export interface RuntimeItemsSchemaPrePostProcessorsMonitorsResults { - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; -} -/** Schema dist/js/schema/workflow/unit/subworkflow.json */ -export interface SubworkflowUnitSchema { + isDraft?: boolean; /** * type of the unit */ type: "subworkflow"; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -59717,7 +62377,13 @@ export interface SubworkflowUnitSchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; +} +/** Schema dist/js/schema/workflow/unit.json */ +export type WorkflowUnitSchema = { + /** + * entity identity + */ + _id?: string; /** * entity slug */ @@ -59727,6 +62393,10 @@ export interface SubworkflowUnitSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -59734,79 +62404,83 @@ export interface SubworkflowUnitSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; -} -/** Schema dist/js/schema/workflow/unit.json */ -export type WorkflowUnitSchema = { + isDraft?: boolean; /** * type of the unit */ type: "io"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; subtype: "input" | "output" | "dataFrame"; source: "api" | "db" | "object_storage"; input: ({ - /** - * rest API endpoint - */ - endpoint: string; - /** - * rest API endpoint options - */ - endpoint_options: {}; - /** - * the name of the variable in local scope to save the data under - */ - name?: string; - [k: string]: unknown; - } | ({ + type: "db_ids"; /** * IDs of item to retrieve from db */ ids: string[]; - [k: string]: unknown; } | { + type: "db_collection"; /** * db collection name */ @@ -59815,8 +62489,8 @@ export type WorkflowUnitSchema = { * whether the result should be saved as draft */ draft: boolean; - [k: string]: unknown; - }) | { + } | { + type: "object_storage"; objectData: { /** * Object storage container for the file @@ -59859,38 +62533,12 @@ export type WorkflowUnitSchema = { * What kind of file this is, e.g. image / text */ filetype?: string; - [k: string]: unknown; })[]; +} | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -59900,6 +62548,10 @@ export type WorkflowUnitSchema = { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -59907,54 +62559,73 @@ export type WorkflowUnitSchema = { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; -} | { + isDraft?: boolean; /** * type of the unit */ type: "reduce"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * corresponding map unit flowchart ID */ @@ -59972,36 +62643,11 @@ export type WorkflowUnitSchema = { */ arguments: string[]; }[]; +} | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -60011,6 +62657,10 @@ export type WorkflowUnitSchema = { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -60018,54 +62668,73 @@ export type WorkflowUnitSchema = { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; -} | { + isDraft?: boolean; /** * type of the unit */ type: "condition"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Input information for condition. */ @@ -60099,36 +62768,11 @@ export type WorkflowUnitSchema = { * Throw exception on reaching to maximum occurence. */ throwException?: boolean; +} | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -60138,6 +62782,10 @@ export type WorkflowUnitSchema = { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -60145,75 +62793,57 @@ export type WorkflowUnitSchema = { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; -} | { + isDraft?: boolean; /** * type of the unit */ type: "assertion"; - /** - * The statement to be evaluated - */ - statement: string; - /** - * The error message to be displayed if the assertion fails - */ - errorMessage?: string; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -60230,7 +62860,19 @@ export type WorkflowUnitSchema = { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; + /** + * The statement to be evaluated + */ + statement: string; + /** + * The error message to be displayed if the assertion fails + */ + errorMessage?: string; +} | { + /** + * entity identity + */ + _id?: string; /** * entity slug */ @@ -60240,6 +62882,10 @@ export type WorkflowUnitSchema = { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -60247,79 +62893,74 @@ export type WorkflowUnitSchema = { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; -} | { + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "execution"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; /** - * type of the unit + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ - type: "execution"; + enableRender?: boolean; application: { - /** - * The short name of the application. e.g. qe - */ - shortName?: string; - /** - * Application's short description. - */ - summary?: string; - /** - * Application version. e.g. 5.3.5 - */ - version?: string; - /** - * Application build. e.g. VTST - */ - build?: string; - /** - * Whether advanced compute options are present - */ - hasAdvancedComputeOptions?: boolean; - /** - * Whether licensing is present - */ - isLicensed?: boolean; /** * entity identity */ @@ -60336,26 +62977,37 @@ export type WorkflowUnitSchema = { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; - }; - executable?: { /** - * The name of the executable. e.g. pw.x + * The short name of the application. e.g. qe + */ + shortName: string; + /** + * Application's short description. */ - name: string; + summary: string; /** - * _ids of the application this executable belongs to + * Application version. e.g. 5.3.5 + */ + version: string; + /** + * Application build. e.g. VTST */ - applicationId?: string[]; + build: string; /** * Whether advanced compute options are present */ hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; + }; + executable?: { /** * entity identity */ @@ -60369,6 +63021,10 @@ export type WorkflowUnitSchema = { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -60376,65 +63032,49 @@ export type WorkflowUnitSchema = { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - flavor?: { - /** - * _id of the executable this flavor belongs to - */ - executableId?: string; - /** - * name of the executable this flavor belongs to - */ - executableName?: string; + }[]; /** - * name of the application this flavor belongs to + * _ids of the application this executable belongs to */ - applicationName?: string; - input?: { - templateId?: string; - templateName?: string; - /** - * name of the resulting input file, if different than template name - */ - name?: string; - }[]; + applicationId: string[]; /** - * list of application versions this flavor supports + * Whether advanced compute options are present */ - supportedApplicationVersions?: string[]; + hasAdvancedComputeOptions?: boolean; + }; + flavor?: { /** * entity identity */ @@ -60451,7 +63091,7 @@ export type WorkflowUnitSchema = { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -60459,76 +63099,114 @@ export type WorkflowUnitSchema = { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; + /** + * _id of the executable this flavor belongs to + */ + executableId: string; + /** + * name of the executable this flavor belongs to + */ + executableName?: string; + /** + * name of the application this flavor belongs to + */ + applicationName?: string; + input: { + templateId?: string; + templateName?: string; + /** + * name of the resulting input file, if different than template name + */ + name?: string; + }[]; + /** + * list of application versions this flavor supports + */ + supportedApplicationVersions?: string[]; }; - /** - * unit input (type to be specified by the application's execution unit) - */ input: { - [k: string]: unknown; - }; + template: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * Content of the template. e.g. &CONTROL calculation='scf' ... + */ + content: string; + }; + /** + * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + */ + rendered: string; + isManuallyChanged: boolean; + }[]; + context?: { + name: ContextProviderNameEnum; + isEdited: boolean; + data: {}; + extraData?: {}; + }[]; +} | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -60538,6 +63216,10 @@ export type WorkflowUnitSchema = { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -60545,54 +63227,74 @@ export type WorkflowUnitSchema = { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; -} | { + isDraft?: boolean; /** * type of the unit */ type: "assignment"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + scope?: string; /** * Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. */ @@ -60614,36 +63316,11 @@ export type WorkflowUnitSchema = { * Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) */ value: string | boolean | number; +} | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -60653,6 +63330,10 @@ export type WorkflowUnitSchema = { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -60660,55 +63341,73 @@ export type WorkflowUnitSchema = { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - scope?: string; - [k: string]: unknown; -} | { + isDraft?: boolean; /** * type of the unit */ type: "processing"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Contains information about the operation used. */ @@ -60723,36 +63422,11 @@ export type WorkflowUnitSchema = { inputData: { [k: string]: unknown; }; +} | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -60762,6 +63436,10 @@ export type WorkflowUnitSchema = { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -60769,54 +63447,73 @@ export type WorkflowUnitSchema = { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; -} | { + isDraft?: boolean; /** * type of the unit */ type: "map"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Id of workflow to run inside map */ @@ -60843,36 +63540,11 @@ export type WorkflowUnitSchema = { values?: (string | number | {})[]; useValues?: boolean; }; +} | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -60882,6 +63554,10 @@ export type WorkflowUnitSchema = { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -60889,67 +63565,57 @@ export type WorkflowUnitSchema = { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; -} | { + isDraft?: boolean; /** * type of the unit */ type: "subworkflow"; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -60966,104 +63632,243 @@ export type WorkflowUnitSchema = { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; +}; +/** Schema dist/js/schema/workflow.json */ +export interface WorkflowSchema { /** - * names of the pre-processors for this calculation + * Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting */ - preProcessors?: ({ + subworkflows: { /** - * The name of this item. e.g. scf_accuracy + * entity identity */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ + _id?: string; /** - * The name of this item. e.g. scf_accuracy + * entity slug */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ + slug?: string; + systemName?: string; /** - * The name of this item. e.g. scf_accuracy + * entity's schema version. Used to distinct between different schemas. */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ + schemaVersion?: string; /** - * The name of this item. e.g. scf_accuracy + * entity name */ name: string; - } | string)[]; - /** - * entity tags - */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; -}; -/** Schema dist/js/schema/workflow.json */ -export interface WorkflowSchema { - /** - * Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting - */ - subworkflows: { + /** + * Array of characteristic properties calculated by this subworkflow + */ + properties?: string[]; + /** + * Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + */ + compute?: { + /** + * Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. + */ + queue: "D" | "OR" | "OF" | "OFplus" | "SR" | "SF" | "SFplus" | "GPOF" | "GP2OF" | "GP4OF" | "GPSF" | "GP2SF" | "GP4SF" | "OR4" | "OR8" | "OR16" | "SR4" | "SR8" | "SR16" | "GOF" | "G4OF" | "G8OF" | "GSF" | "G4SF" | "G8SF"; + /** + * number of nodes used for the job inside the RMS. + */ + nodes: number; + /** + * number of CPUs used for the job inside the RMS. + */ + ppn: number; + /** + * Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' + */ + timeLimit: string; + /** + * Convention to use when reasoning about time limits + */ + timeLimitType?: "per single attempt" | "compound"; + /** + * Job is allowed to restart on termination. + */ + isRestartable?: boolean; + /** + * Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. + */ + notify?: string; + /** + * Email address to notify about job execution. + */ + email?: string; + /** + * Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. + */ + maxCPU?: number; + /** + * Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + */ + arguments?: { + /** + * Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. + */ + nimage?: number; + /** + * Each image can be subpartitioned into `pools`, each taking care of a group of k-points. + */ + npools?: number; + /** + * Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). + */ + nband?: number; + /** + * In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. + */ + ntg?: number; + /** + * A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. + */ + ndiag?: number; + }; + /** + * Cluster where the job is executed. Optional on create. Required on job submission. + */ + cluster?: { + /** + * FQDN of the cluster. e.g. master-1-staging.exabyte.io + */ + fqdn?: string; + /** + * Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io + */ + jid?: string; + }; + /** + * Computation error. Optional. Appears only if something happens on jobs execution. + */ + errors?: { + /** + * Domain of the error appearance (internal). + */ + domain?: "rupy" | "alfred" | "celim" | "webapp"; + /** + * Should be a short, unique, machine-readable error code string. e.g. FileNotFound + */ + reason?: string; + /** + * Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' + */ + message?: string; + /** + * Full machine-readable error traceback. e.g. FileNotFound + */ + traceback?: string; + }[]; + /** + * A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + */ + excludeFilesPattern?: string; + }; /** * Contains the Units of the subworkflow */ units: ({ /** - * type of the unit + * entity identity */ - type: "io"; - subtype: "input" | "output" | "dataFrame"; - source: "api" | "db" | "object_storage"; - input: ({ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + /** + * Identifies that entity is defaultable + */ + isDefault?: boolean; + /** + * names of the pre-processors for this calculation + */ + preProcessors: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { /** - * rest API endpoint + * The name of this item. e.g. scf_accuracy */ - endpoint: string; + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { /** - * rest API endpoint options + * The name of this item. e.g. scf_accuracy */ - endpoint_options: {}; + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { /** - * the name of the variable in local scope to save the data under + * The name of this item. e.g. scf_accuracy */ - name?: string; - [k: string]: unknown; - } | ({ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; + /** + * type of the unit + */ + type: "io"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + subtype: "input" | "output" | "dataFrame"; + source: "api" | "db" | "object_storage"; + input: ({ + type: "db_ids"; /** * IDs of item to retrieve from db */ ids: string[]; - [k: string]: unknown; } | { + type: "db_collection"; /** * db collection name */ @@ -61072,8 +63877,8 @@ export interface WorkflowSchema { * whether the result should be saved as draft */ draft: boolean; - [k: string]: unknown; - }) | { + } | { + type: "object_storage"; objectData: { /** * Object storage container for the file @@ -61116,38 +63921,12 @@ export interface WorkflowSchema { * What kind of file this is, e.g. image / text */ filetype?: string; - [k: string]: unknown; })[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -61157,6 +63936,10 @@ export interface WorkflowSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -61164,54 +63947,73 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "reduce"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * corresponding map unit flowchart ID */ @@ -61229,36 +64031,11 @@ export interface WorkflowSchema { */ arguments: string[]; }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -61268,6 +64045,10 @@ export interface WorkflowSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -61275,54 +64056,73 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "condition"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Input information for condition. */ @@ -61356,36 +64156,11 @@ export interface WorkflowSchema { * Throw exception on reaching to maximum occurence. */ throwException?: boolean; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -61395,6 +64170,10 @@ export interface WorkflowSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -61402,75 +64181,57 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "assertion"; - /** - * The statement to be evaluated - */ - statement: string; - /** - * The error message to be displayed if the assertion fails - */ - errorMessage?: string; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -61487,7 +64248,19 @@ export interface WorkflowSchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; + /** + * The statement to be evaluated + */ + statement: string; + /** + * The error message to be displayed if the assertion fails + */ + errorMessage?: string; + } | { + /** + * entity identity + */ + _id?: string; /** * entity slug */ @@ -61497,6 +64270,10 @@ export interface WorkflowSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -61504,79 +64281,74 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "execution"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; application: { - /** - * The short name of the application. e.g. qe - */ - shortName?: string; - /** - * Application's short description. - */ - summary?: string; - /** - * Application version. e.g. 5.3.5 - */ - version?: string; - /** - * Application build. e.g. VTST - */ - build?: string; - /** - * Whether advanced compute options are present - */ - hasAdvancedComputeOptions?: boolean; - /** - * Whether licensing is present - */ - isLicensed?: boolean; /** * entity identity */ @@ -61593,26 +64365,37 @@ export interface WorkflowSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; - }; - executable?: { /** - * The name of the executable. e.g. pw.x + * The short name of the application. e.g. qe + */ + shortName: string; + /** + * Application's short description. */ - name: string; + summary: string; /** - * _ids of the application this executable belongs to + * Application version. e.g. 5.3.5 + */ + version: string; + /** + * Application build. e.g. VTST */ - applicationId?: string[]; + build: string; /** * Whether advanced compute options are present */ hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; + }; + executable?: { /** * entity identity */ @@ -61626,6 +64409,10 @@ export interface WorkflowSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -61633,65 +64420,49 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - flavor?: { - /** - * _id of the executable this flavor belongs to - */ - executableId?: string; - /** - * name of the executable this flavor belongs to - */ - executableName?: string; + }[]; /** - * name of the application this flavor belongs to + * _ids of the application this executable belongs to */ - applicationName?: string; - input?: { - templateId?: string; - templateName?: string; - /** - * name of the resulting input file, if different than template name - */ - name?: string; - }[]; + applicationId: string[]; /** - * list of application versions this flavor supports + * Whether advanced compute options are present */ - supportedApplicationVersions?: string[]; + hasAdvancedComputeOptions?: boolean; + }; + flavor?: { /** * entity identity */ @@ -61708,7 +64479,7 @@ export interface WorkflowSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -61716,76 +64487,114 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; + /** + * _id of the executable this flavor belongs to + */ + executableId: string; + /** + * name of the executable this flavor belongs to + */ + executableName?: string; + /** + * name of the application this flavor belongs to + */ + applicationName?: string; + input: { + templateId?: string; + templateName?: string; + /** + * name of the resulting input file, if different than template name + */ + name?: string; + }[]; + /** + * list of application versions this flavor supports + */ + supportedApplicationVersions?: string[]; }; - /** - * unit input (type to be specified by the application's execution unit) - */ input: { - [k: string]: unknown; - }; + template: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * Content of the template. e.g. &CONTROL calculation='scf' ... + */ + content: string; + }; + /** + * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + */ + rendered: string; + isManuallyChanged: boolean; + }[]; + context?: { + name: ContextProviderNameEnum; + isEdited: boolean; + data: {}; + extraData?: {}; + }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -61795,6 +64604,10 @@ export interface WorkflowSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -61802,54 +64615,74 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "assignment"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + scope?: string; /** * Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. */ @@ -61871,36 +64704,11 @@ export interface WorkflowSchema { * Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) */ value: string | boolean | number; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -61910,6 +64718,10 @@ export interface WorkflowSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -61917,82 +64729,57 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - scope?: string; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "processing"; - /** - * Contains information about the operation used. - */ - operation: string; - /** - * Contains information about the specific type of the operation used. - */ - operationType: string; - /** - * unit input (type to be specified by the child units) - */ - inputData: { - [k: string]: unknown; - }; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -62009,66 +64796,20 @@ export interface WorkflowSchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation + * Contains information about the operation used. */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + operation: string; /** - * names of the results for this calculation + * Contains information about the specific type of the operation used. */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; + operationType: string; /** - * entity tags + * unit input (type to be specified by the child units) */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; + inputData: { + [k: string]: unknown; + }; })[]; model: { /** @@ -62101,204 +64842,161 @@ export interface WorkflowSchema { }; application: { /** - * The short name of the application. e.g. qe + * entity identity */ - shortName?: string; + _id?: string; /** - * Application's short description. + * entity slug */ - summary?: string; + slug?: string; + systemName?: string; /** - * Application version. e.g. 5.3.5 + * entity's schema version. Used to distinct between different schemas. */ - version?: string; + schemaVersion?: string; /** - * Application build. e.g. VTST + * entity name */ - build?: string; + name: string; /** - * Whether advanced compute options are present + * Identifies that entity is defaultable */ - hasAdvancedComputeOptions?: boolean; + isDefault?: boolean; /** - * Whether licensing is present + * The short name of the application. e.g. qe */ - isLicensed?: boolean; + shortName: string; /** - * entity identity + * Application's short description. */ - _id?: string; + summary: string; /** - * entity slug + * Application version. e.g. 5.3.5 */ - slug?: string; - systemName?: string; + version: string; /** - * entity's schema version. Used to distinct between different schemas. + * Application build. e.g. VTST */ - schemaVersion?: string; + build: string; /** - * entity name + * Whether advanced compute options are present */ - name?: string; + hasAdvancedComputeOptions?: boolean; /** - * Identifies that entity is defaultable + * Whether licensing is present */ - isDefault?: boolean; - [k: string]: unknown; + isLicensed?: boolean; }; /** * Defines whether to store the results/properties extracted in this unit to properties collection */ isDraft?: boolean; + }[]; + /** + * Contains the Units of the Workflow + */ + units: ({ /** - * subworkflow identity + * entity identity */ _id?: string; /** - * Human-readable name of the subworkflow. e.g. Total-energy + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name */ name: string; /** - * Array of characteristic properties calculated by this subworkflow + * Identifies that entity is defaultable */ - properties?: string[]; + isDefault?: boolean; /** - * Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + * names of the pre-processors for this calculation */ - compute?: { - /** - * Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. - */ - queue: "D" | "OR" | "OF" | "OFplus" | "SR" | "SF" | "SFplus" | "GPOF" | "GP2OF" | "GP4OF" | "GPSF" | "GP2SF" | "GP4SF" | "OR4" | "OR8" | "OR16" | "SR4" | "SR8" | "SR16" | "GOF" | "G4OF" | "G8OF" | "GSF" | "G4SF" | "G8SF"; - /** - * number of nodes used for the job inside the RMS. - */ - nodes: number; - /** - * number of CPUs used for the job inside the RMS. - */ - ppn: number; - /** - * Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' - */ - timeLimit: string; - /** - * Convention to use when reasoning about time limits - */ - timeLimitType?: "per single attempt" | "compound"; - /** - * Job is allowed to restart on termination. - */ - isRestartable?: boolean; - /** - * Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. - */ - notify?: string; - /** - * Email address to notify about job execution. - */ - email?: string; - /** - * Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. - */ - maxCPU?: number; + preProcessors: { /** - * Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + * The name of this item. e.g. scf_accuracy */ - arguments?: { - /** - * Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. - */ - nimage?: number; - /** - * Each image can be subpartitioned into `pools`, each taking care of a group of k-points. - */ - npools?: number; - /** - * Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). - */ - nband?: number; - /** - * In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. - */ - ntg?: number; - /** - * A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. - */ - ndiag?: number; - }; + name: string; + }[]; + /** + * names of the post-processors for this calculation + */ + postProcessors: { /** - * Cluster where the job is executed. Optional on create. Required on job submission. + * The name of this item. e.g. scf_accuracy */ - cluster?: { - /** - * FQDN of the cluster. e.g. master-1-staging.exabyte.io - */ - fqdn?: string; - /** - * Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io - */ - jid?: string; - }; + name: string; + }[]; + /** + * names of the monitors for this calculation + */ + monitors: { /** - * Computation error. Optional. Appears only if something happens on jobs execution. + * The name of this item. e.g. scf_accuracy */ - errors?: { - /** - * Domain of the error appearance (internal). - */ - domain?: "rupy" | "alfred" | "celim" | "webapp"; - /** - * Should be a short, unique, machine-readable error code string. e.g. FileNotFound - */ - reason?: string; - /** - * Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' - */ - message?: string; - /** - * Full machine-readable error traceback. e.g. FileNotFound - */ - traceback?: string; - }[]; + name: string; + }[]; + /** + * names of the results for this calculation + */ + results: { /** - * A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + * The name of this item. e.g. scf_accuracy */ - excludeFilesPattern?: string; - }; - }[]; - /** - * Contains the Units of the Workflow - */ - units: ({ + name: string; + }[]; + /** + * entity tags + */ + tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; + statusTrack?: { + trackedAt: number; + status: string; + repetition?: number; + }[]; + isDraft?: boolean; /** * type of the unit */ type: "io"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; subtype: "input" | "output" | "dataFrame"; source: "api" | "db" | "object_storage"; input: ({ - /** - * rest API endpoint - */ - endpoint: string; - /** - * rest API endpoint options - */ - endpoint_options: {}; - /** - * the name of the variable in local scope to save the data under - */ - name?: string; - [k: string]: unknown; - } | ({ + type: "db_ids"; /** * IDs of item to retrieve from db */ ids: string[]; - [k: string]: unknown; } | { + type: "db_collection"; /** * db collection name */ @@ -62307,8 +65005,8 @@ export interface WorkflowSchema { * whether the result should be saved as draft */ draft: boolean; - [k: string]: unknown; - }) | { + } | { + type: "object_storage"; objectData: { /** * Object storage container for the file @@ -62351,38 +65049,12 @@ export interface WorkflowSchema { * What kind of file this is, e.g. image / text */ filetype?: string; - [k: string]: unknown; })[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -62392,6 +65064,10 @@ export interface WorkflowSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -62399,54 +65075,73 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "reduce"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * corresponding map unit flowchart ID */ @@ -62464,36 +65159,11 @@ export interface WorkflowSchema { */ arguments: string[]; }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -62503,6 +65173,10 @@ export interface WorkflowSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -62510,54 +65184,73 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "condition"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Input information for condition. */ @@ -62576,51 +65269,26 @@ export interface WorkflowSchema { */ statement: string; /** - * Flowchart ID reference for `then` part of the condition. - */ - then: string; - /** - * Flowchart ID reference for `else` part of the condition. - */ - else: string; - /** - * Maximum occurrence of the condition, usable for loops. - */ - maxOccurrences: number; - /** - * Throw exception on reaching to maximum occurence. - */ - throwException?: boolean; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. + * Flowchart ID reference for `then` part of the condition. */ - status?: "idle" | "active" | "warning" | "error" | "finished"; + then: string; /** - * Whether this unit is the first one to be executed. + * Flowchart ID reference for `else` part of the condition. */ - head?: boolean; + else: string; /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + * Maximum occurrence of the condition, usable for loops. */ - flowchartId: string; + maxOccurrences: number; /** - * Next unit's flowchartId. If empty, the current unit is the last. + * Throw exception on reaching to maximum occurence. */ - next?: string; + throwException?: boolean; + } | { /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + * entity identity */ - enableRender?: boolean; - context?: {}; + _id?: string; /** * entity slug */ @@ -62630,6 +65298,10 @@ export interface WorkflowSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -62637,75 +65309,57 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "assertion"; - /** - * The statement to be evaluated - */ - statement: string; - /** - * The error message to be displayed if the assertion fails - */ - errorMessage?: string; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -62722,7 +65376,19 @@ export interface WorkflowSchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; + /** + * The statement to be evaluated + */ + statement: string; + /** + * The error message to be displayed if the assertion fails + */ + errorMessage?: string; + } | { + /** + * entity identity + */ + _id?: string; /** * entity slug */ @@ -62732,6 +65398,10 @@ export interface WorkflowSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -62739,79 +65409,74 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "execution"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; application: { - /** - * The short name of the application. e.g. qe - */ - shortName?: string; - /** - * Application's short description. - */ - summary?: string; - /** - * Application version. e.g. 5.3.5 - */ - version?: string; - /** - * Application build. e.g. VTST - */ - build?: string; - /** - * Whether advanced compute options are present - */ - hasAdvancedComputeOptions?: boolean; - /** - * Whether licensing is present - */ - isLicensed?: boolean; /** * entity identity */ @@ -62828,26 +65493,37 @@ export interface WorkflowSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ isDefault?: boolean; - [k: string]: unknown; - }; - executable?: { /** - * The name of the executable. e.g. pw.x + * The short name of the application. e.g. qe */ - name: string; + shortName: string; /** - * _ids of the application this executable belongs to + * Application's short description. + */ + summary: string; + /** + * Application version. e.g. 5.3.5 */ - applicationId?: string[]; + version: string; + /** + * Application build. e.g. VTST + */ + build: string; /** * Whether advanced compute options are present */ hasAdvancedComputeOptions?: boolean; + /** + * Whether licensing is present + */ + isLicensed?: boolean; + }; + executable?: { /** * entity identity */ @@ -62861,6 +65537,10 @@ export interface WorkflowSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -62868,65 +65548,49 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; - }; - flavor?: { - /** - * _id of the executable this flavor belongs to - */ - executableId?: string; - /** - * name of the executable this flavor belongs to - */ - executableName?: string; + }[]; /** - * name of the application this flavor belongs to + * _ids of the application this executable belongs to */ - applicationName?: string; - input?: { - templateId?: string; - templateName?: string; - /** - * name of the resulting input file, if different than template name - */ - name?: string; - }[]; + applicationId: string[]; /** - * list of application versions this flavor supports + * Whether advanced compute options are present */ - supportedApplicationVersions?: string[]; + hasAdvancedComputeOptions?: boolean; + }; + flavor?: { /** * entity identity */ @@ -62943,7 +65607,7 @@ export interface WorkflowSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ @@ -62951,76 +65615,114 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; + /** + * _id of the executable this flavor belongs to + */ + executableId: string; + /** + * name of the executable this flavor belongs to + */ + executableName?: string; + /** + * name of the application this flavor belongs to + */ + applicationName?: string; + input: { + templateId?: string; + templateName?: string; + /** + * name of the resulting input file, if different than template name + */ + name?: string; + }[]; + /** + * list of application versions this flavor supports + */ + supportedApplicationVersions?: string[]; }; - /** - * unit input (type to be specified by the application's execution unit) - */ input: { - [k: string]: unknown; - }; + template: { + /** + * entity identity + */ + _id?: string; + /** + * entity slug + */ + slug?: string; + systemName?: string; + /** + * entity's schema version. Used to distinct between different schemas. + */ + schemaVersion?: string; + /** + * entity name + */ + name: string; + applicationName: string; + applicationVersion?: string; + executableName: string; + contextProviders: { + /** + * The name of this item. e.g. scf_accuracy + */ + name: string; + }[]; + /** + * Content of the template. e.g. &CONTROL calculation='scf' ... + */ + content: string; + }; + /** + * Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + */ + rendered: string; + isManuallyChanged: boolean; + }[]; + context?: { + name: ContextProviderNameEnum; + isEdited: boolean; + data: {}; + extraData?: {}; + }[]; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -63030,6 +65732,10 @@ export interface WorkflowSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -63037,54 +65743,74 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "assignment"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; + scope?: string; /** * Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. */ @@ -63106,36 +65832,11 @@ export interface WorkflowSchema { * Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) */ value: string | boolean | number; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -63145,6 +65846,10 @@ export interface WorkflowSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -63152,55 +65857,73 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - scope?: string; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "processing"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Contains information about the operation used. */ @@ -63215,36 +65938,11 @@ export interface WorkflowSchema { inputData: { [k: string]: unknown; }; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -63254,6 +65952,10 @@ export interface WorkflowSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -63261,54 +65963,73 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "map"; + /** + * Whether this unit is the first one to be executed. + */ + head?: boolean; + /** + * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + */ + flowchartId: string; + /** + * Next unit's flowchartId. If empty, the current unit is the last. + */ + next?: string; + /** + * Whether Rupy should attempt to use Jinja templating to add context variables into the unit + */ + enableRender?: boolean; /** * Id of workflow to run inside map */ @@ -63335,36 +66056,11 @@ export interface WorkflowSchema { values?: (string | number | {})[]; useValues?: boolean; }; + } | { /** * entity identity */ _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; - /** - * Whether this unit is the first one to be executed. - */ - head?: boolean; - /** - * Identity of the unit in the workflow. Used to trace the execution flow of the workflow. - */ - flowchartId: string; - /** - * Next unit's flowchartId. If empty, the current unit is the last. - */ - next?: string; - /** - * Whether Rupy should attempt to use Jinja templating to add context variables into the unit - */ - enableRender?: boolean; - context?: {}; /** * entity slug */ @@ -63374,6 +66070,10 @@ export interface WorkflowSchema { * entity's schema version. Used to distinct between different schemas. */ schemaVersion?: string; + /** + * entity name + */ + name: string; /** * Identifies that entity is defaultable */ @@ -63381,67 +66081,57 @@ export interface WorkflowSchema { /** * names of the pre-processors for this calculation */ - preProcessors?: ({ + preProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the post-processors for this calculation */ - postProcessors?: ({ + postProcessors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the monitors for this calculation */ - monitors?: ({ + monitors: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * names of the results for this calculation */ - results?: ({ + results: { /** * The name of this item. e.g. scf_accuracy */ name: string; - } | string)[]; + }[]; /** * entity tags */ tags?: string[]; + /** + * Status of the unit. + */ + status?: "idle" | "active" | "warning" | "error" | "finished"; statusTrack?: { trackedAt: number; status: string; repetition?: number; }[]; - [k: string]: unknown; - } | { + isDraft?: boolean; /** * type of the unit */ type: "subworkflow"; - /** - * entity identity - */ - _id?: string; - isDraft?: boolean; - /** - * name of the unit. e.g. pw_scf - */ - name?: string; - /** - * Status of the unit. - */ - status?: "idle" | "active" | "warning" | "error" | "finished"; /** * Whether this unit is the first one to be executed. */ @@ -63458,66 +66148,6 @@ export interface WorkflowSchema { * Whether Rupy should attempt to use Jinja templating to add context variables into the unit */ enableRender?: boolean; - context?: {}; - /** - * entity slug - */ - slug?: string; - systemName?: string; - /** - * entity's schema version. Used to distinct between different schemas. - */ - schemaVersion?: string; - /** - * Identifies that entity is defaultable - */ - isDefault?: boolean; - /** - * names of the pre-processors for this calculation - */ - preProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the post-processors for this calculation - */ - postProcessors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the monitors for this calculation - */ - monitors?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * names of the results for this calculation - */ - results?: ({ - /** - * The name of this item. e.g. scf_accuracy - */ - name: string; - } | string)[]; - /** - * entity tags - */ - tags?: string[]; - statusTrack?: { - trackedAt: number; - status: string; - repetition?: number; - }[]; - [k: string]: unknown; })[]; /** * Array of characteristic properties calculated by this workflow (TODO: add enums) @@ -63547,7 +66177,7 @@ export interface WorkflowSchema { /** * entity name */ - name?: string; + name: string; /** * Identifies that entity is defaultable */ diff --git a/dist/py b/dist/py deleted file mode 120000 index 87dfd889e..000000000 --- a/dist/py +++ /dev/null @@ -1 +0,0 @@ -../src/py/mat3ra/esse/models \ No newline at end of file diff --git a/dist/py/__init__.py b/dist/py/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/apse/db/__init__.py b/dist/py/apse/db/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/apse/db/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/apse/db/materials_project/2025_9.25/__init__.py b/dist/py/apse/db/materials_project/2025_9.25/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/apse/db/materials_project/2025_9.25/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/apse/db/materials_project/2025_9.25/summary.py b/dist/py/apse/db/materials_project/2025_9.25/summary.py new file mode 100644 index 000000000..a626eabe2 --- /dev/null +++ b/dist/py/apse/db/materials_project/2025_9.25/summary.py @@ -0,0 +1,886 @@ +# generated by datamodel-codegen: +# filename: apse/db/materials_project/2025.9.25/summary.json +# version: 0.28.5 + +from __future__ import annotations + +from datetime import datetime +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel, Field, RootModel + + +class BuilderMeta(BaseModel): + emmet_version: str + """ + Version of emmet library used + """ + pymatgen_version: str + """ + Version of pymatgen library used + """ + run_id: str + """ + Unique identifier for the calculation run + """ + batch_id: Optional[str] = None + """ + Batch identifier for grouped calculations + """ + database_version: str + """ + Version of the Materials Project database + """ + build_date: datetime + """ + Date when the calculation was performed + """ + license: str + """ + License information for the data + """ + + +class Symmetry(BaseModel): + crystal_system: str + """ + Crystal system classification + """ + symbol: str + """ + Space group symbol + """ + hall: Optional[str] = None + """ + Hall symbol + """ + number: int + """ + Space group number + """ + point_group: str + """ + Point group symbol + """ + symprec: float + """ + Symmetry precision tolerance + """ + angle_tolerance: float + """ + Angle tolerance for symmetry analysis + """ + version: str + """ + Version of symmetry analysis software + """ + + +class Origin(BaseModel): + name: str + """ + Origin name (e.g., structure, energy, magnetism) + """ + task_id: str + """ + Task identifier for this origin + """ + last_updated: datetime + """ + Last update for this origin + """ + + +class MatrixItem(RootModel[List[float]]): + root: List[float] + + +class Lattice(BaseModel): + matrix: List[MatrixItem] = Field(..., max_length=3, min_length=3) + """ + Lattice matrix + """ + pbc: List[bool] = Field(..., max_length=3, min_length=3) + """ + Periodic boundary conditions + """ + a: float + """ + Lattice parameter a + """ + b: float + """ + Lattice parameter b + """ + c: float + """ + Lattice parameter c + """ + alpha: float + """ + Lattice angle alpha + """ + beta: float + """ + Lattice angle beta + """ + gamma: float + """ + Lattice angle gamma + """ + volume: float + """ + Unit cell volume + """ + + +class Species(BaseModel): + element: str + """ + Chemical element + """ + occu: float + """ + Occupancy + """ + + +class Properties(BaseModel): + magmom: Optional[float] = None + """ + Magnetic moment + """ + + +class Site(BaseModel): + species: List[Species] + abc: List[float] = Field(..., max_length=3, min_length=3) + """ + Fractional coordinates + """ + properties: Optional[Properties] = None + label: str + """ + Site label + """ + xyz: List[float] = Field(..., max_length=3, min_length=3) + """ + Cartesian coordinates + """ + + +class Structure(BaseModel): + module: str = Field(..., alias="@module") + """ + Python module name + """ + class_: str = Field(..., alias="@class") + """ + Python class name + """ + charge: float + """ + Total charge of the structure + """ + lattice: Lattice + properties: Dict[str, Any] + """ + Additional structure properties + """ + sites: List[Site] + + +class DecomposesToItem(BaseModel): + material_id: str + """ + Material ID of decomposition product + """ + formula: str + """ + Formula of decomposition product + """ + amount: float + """ + Amount of decomposition product + """ + + +class Xa(BaseModel): + edge: str + """ + XAS edge type (K, L, M, etc.) + """ + absorbing_element: str + """ + Element for XAS absorption + """ + spectrum_type: str + """ + Type of XAS spectrum (XANES, EXAFS, XAFS) + """ + + +class Lattice1(BaseModel): + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + matrix: List[MatrixItem] = Field(..., max_length=3, min_length=3) + pbc: List[bool] = Field(..., max_length=3, min_length=3) + + +class Kpoint(BaseModel): + lattice: Lattice1 + fcoords: List[float] = Field(..., max_length=3, min_length=3) + ccoords: List[float] = Field(..., max_length=3, min_length=3) + label: Optional[str] = None + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + + +class Cbm(BaseModel): + band_index: Dict[str, List[float]] + kpoint_index: List[float] + kpoint: Kpoint + energy: float + projections: Dict[str, List[List[float]]] + + +class Lattice2(BaseModel): + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + matrix: List[MatrixItem] = Field(..., max_length=3, min_length=3) + pbc: List[bool] = Field(..., max_length=3, min_length=3) + + +class Kpoint1(BaseModel): + lattice: Lattice2 + fcoords: List[float] = Field(..., max_length=3, min_length=3) + ccoords: List[float] = Field(..., max_length=3, min_length=3) + label: Optional[str] = None + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + + +class Vbm(BaseModel): + band_index: Dict[str, List[float]] + kpoint_index: List[float] + kpoint: Kpoint1 + energy: float + projections: Dict[str, List[List[float]]] + + +class SetyawanCurtarolo(BaseModel): + task_id: str + band_gap: float + cbm: Optional[Cbm] = None + vbm: Optional[Vbm] = None + efermi: Optional[float] = None + is_gap_direct: bool + is_metal: bool + magnetic_ordering: str + equivalent_labels: Dict[str, Dict[str, Dict[str, str]]] + nbands: float + direct_gap: float + + +class Lattice3(BaseModel): + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + matrix: List[MatrixItem] = Field(..., max_length=3, min_length=3) + pbc: List[bool] = Field(..., max_length=3, min_length=3) + + +class Kpoint2(BaseModel): + lattice: Lattice3 + fcoords: List[float] = Field(..., max_length=3, min_length=3) + ccoords: List[float] = Field(..., max_length=3, min_length=3) + label: Optional[str] = None + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + + +class Cbm1(BaseModel): + band_index: Dict[str, List[float]] + kpoint_index: List[float] + kpoint: Kpoint2 + energy: float + projections: Dict[str, List[List[float]]] + + +class Lattice4(BaseModel): + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + matrix: List[MatrixItem] = Field(..., max_length=3, min_length=3) + pbc: List[bool] = Field(..., max_length=3, min_length=3) + + +class Kpoint3(BaseModel): + lattice: Lattice4 + fcoords: List[float] = Field(..., max_length=3, min_length=3) + ccoords: List[float] = Field(..., max_length=3, min_length=3) + label: Optional[str] = None + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + + +class Vbm1(BaseModel): + band_index: Dict[str, List[float]] + kpoint_index: List[float] + kpoint: Kpoint3 + energy: float + projections: Dict[str, List[List[float]]] + + +class Hinuma(BaseModel): + task_id: str + band_gap: float + cbm: Optional[Cbm1] = None + vbm: Optional[Vbm1] = None + efermi: Optional[float] = None + is_gap_direct: bool + is_metal: bool + magnetic_ordering: str + equivalent_labels: Dict[str, Dict[str, Dict[str, str]]] + nbands: float + direct_gap: float + + +class Lattice5(BaseModel): + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + matrix: List[MatrixItem] = Field(..., max_length=3, min_length=3) + pbc: List[bool] = Field(..., max_length=3, min_length=3) + + +class Kpoint4(BaseModel): + lattice: Lattice5 + fcoords: List[float] = Field(..., max_length=3, min_length=3) + ccoords: List[float] = Field(..., max_length=3, min_length=3) + label: Optional[str] = None + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + + +class Cbm2(BaseModel): + band_index: Dict[str, List[float]] + kpoint_index: List[float] + kpoint: Kpoint4 + energy: float + projections: Dict[str, List[List[float]]] + + +class Lattice6(BaseModel): + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + matrix: List[MatrixItem] = Field(..., max_length=3, min_length=3) + pbc: List[bool] = Field(..., max_length=3, min_length=3) + + +class Kpoint5(BaseModel): + lattice: Lattice6 + fcoords: List[float] = Field(..., max_length=3, min_length=3) + ccoords: List[float] = Field(..., max_length=3, min_length=3) + label: Optional[str] = None + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + + +class Vbm2(BaseModel): + band_index: Dict[str, List[float]] + kpoint_index: List[float] + kpoint: Kpoint5 + energy: float + projections: Dict[str, List[List[float]]] + + +class LatimerMunro(BaseModel): + task_id: str + band_gap: float + cbm: Optional[Cbm2] = None + vbm: Optional[Vbm2] = None + efermi: Optional[float] = None + is_gap_direct: bool + is_metal: bool + magnetic_ordering: str + equivalent_labels: Dict[str, Dict[str, Dict[str, str]]] + nbands: float + direct_gap: float + + +class Bandstructure(BaseModel): + setyawan_curtarolo: Optional[SetyawanCurtarolo] = None + hinuma: Optional[Hinuma] = None + latimer_munro: Optional[LatimerMunro] = None + + +class Total(BaseModel): + task_id: str + band_gap: float + cbm: Optional[float] = None + vbm: Optional[float] = None + efermi: float + spin_polarization: Optional[float] = None + + +class S(BaseModel): + task_id: str + band_gap: float + cbm: Optional[float] = None + vbm: Optional[float] = None + efermi: float + spin_polarization: Optional[float] = None + + +class P(BaseModel): + task_id: str + band_gap: float + cbm: Optional[float] = None + vbm: Optional[float] = None + efermi: float + spin_polarization: Optional[float] = None + + +class D(BaseModel): + task_id: str + band_gap: float + cbm: Optional[float] = None + vbm: Optional[float] = None + efermi: float + spin_polarization: Optional[float] = None + + +class Elemental(BaseModel): + total: Optional[Dict[str, Total]] = None + s: Optional[Dict[str, S]] = None + p: Optional[Dict[str, P]] = None + d: Optional[Dict[str, D]] = None + + +class Orbital(BaseModel): + s: Optional[Dict[str, S]] = None + p: Optional[Dict[str, P]] = None + d: Optional[Dict[str, D]] = None + + +class Dos(BaseModel): + total: Optional[Dict[str, Total]] = None + elemental: Optional[Dict[str, Elemental]] = None + orbital: Optional[Orbital] = None + magnetic_ordering: Optional[str] = None + """ + Magnetic ordering type + """ + + +class BulkModulus(BaseModel): + voigt: float + """ + Voigt bulk modulus in GPa + """ + reuss: float + """ + Reuss bulk modulus in GPa + """ + vrh: float + """ + Voigt-Reuss-Hill bulk modulus in GPa + """ + + +class ShearModulus(BaseModel): + voigt: float + """ + Voigt shear modulus in GPa + """ + reuss: float + """ + Reuss shear modulus in GPa + """ + vrh: float + """ + Voigt-Reuss-Hill shear modulus in GPa + """ + + +class HasProps(BaseModel): + materials: bool + thermo: bool + xas: bool + grain_boundaries: bool + chemenv: bool + electronic_structure: bool + absorption: bool + bandstructure: bool + dos: bool + magnetism: bool + elasticity: bool + dielectric: bool + piezoelectric: bool + surface_properties: bool + oxi_states: bool + provenance: bool + charge_density: bool + eos: bool + phonon: bool + insertion_electrodes: bool + substrates: bool + + +class DatabaseIDs(BaseModel): + icsd: Optional[List[str]] = None + """ + ICSD database identifiers + """ + + +class MaterialsProjectSchema(BaseModel): + builder_meta: BuilderMeta + nsites: int + """ + Number of sites in the structure + """ + elements: List[str] + """ + List of chemical elements in the material + """ + nelements: int + """ + Number of unique elements + """ + composition: Dict[str, float] + """ + Chemical composition as element: count mapping + """ + composition_reduced: Dict[str, float] + """ + Reduced chemical composition + """ + formula_pretty: str + """ + Human-readable chemical formula + """ + formula_anonymous: str + """ + Anonymous chemical formula + """ + chemsys: str + """ + Chemical system identifier + """ + volume: float + """ + Unit cell volume in cubic Angstroms + """ + density: float + """ + Material density in g/cm³ + """ + density_atomic: float + """ + Atomic density + """ + symmetry: Symmetry + material_id: str + """ + Unique Materials Project identifier + """ + deprecated: bool + """ + Whether this material entry is deprecated + """ + deprecation_reasons: Optional[List[str]] = None + """ + Reasons for deprecation if applicable + """ + last_updated: datetime + """ + Last update timestamp + """ + origins: List[Origin] + warnings: List[str] + """ + Warning messages + """ + structure: Structure + property_name: str + """ + Name of the property endpoint + """ + task_ids: List[str] + """ + List of task identifiers + """ + uncorrected_energy_per_atom: float + """ + Uncorrected energy per atom in eV + """ + energy_per_atom: float + """ + Energy per atom in eV + """ + formation_energy_per_atom: float + """ + Formation energy per atom in eV + """ + energy_above_hull: float + """ + Energy above convex hull in eV + """ + is_stable: bool + """ + Whether the material is thermodynamically stable + """ + equilibrium_reaction_energy_per_atom: Optional[float] = None + """ + Equilibrium reaction energy per atom in eV + """ + decomposes_to: Optional[List[DecomposesToItem]] = None + xas: Optional[List[Xa]] = None + grain_boundaries: Optional[Dict[str, Any]] = None + """ + Grain boundary information + """ + band_gap: float + """ + Band gap in eV + """ + cbm: Optional[float] = None + """ + Conduction band minimum in eV + """ + vbm: Optional[float] = None + """ + Valence band maximum in eV + """ + efermi: Optional[float] = None + """ + Fermi energy in eV + """ + is_gap_direct: bool + """ + Whether the band gap is direct + """ + is_metal: bool + """ + Whether the material is metallic + """ + es_source_calc_id: Optional[str] = None + """ + Source calculation ID for electronic structure + """ + bandstructure: Optional[Bandstructure] = None + dos: Optional[Dos] = None + dos_energy_up: Optional[Dict[str, Any]] = None + """ + Density of states for spin up + """ + dos_energy_down: Optional[Dict[str, Any]] = None + """ + Density of states for spin down + """ + is_magnetic: bool + """ + Whether the material is magnetic + """ + ordering: str + """ + Magnetic ordering + """ + total_magnetization: float + """ + Total magnetization + """ + total_magnetization_normalized_vol: float + """ + Volume-normalized magnetization + """ + total_magnetization_normalized_formula_units: float + """ + Formula unit normalized magnetization + """ + num_magnetic_sites: float + """ + Number of magnetic sites + """ + num_unique_magnetic_sites: float + """ + Number of unique magnetic sites + """ + types_of_magnetic_species: List[str] + """ + Types of magnetic species + """ + bulk_modulus: Optional[BulkModulus] = None + shear_modulus: Optional[ShearModulus] = None + universal_anisotropy: Optional[float] = None + """ + Universal anisotropy index + """ + homogeneous_poisson: Optional[float] = None + """ + Homogeneous Poisson ratio + """ + e_total: Optional[float] = None + """ + Total energy + """ + e_ionic: Optional[float] = None + """ + Ionic energy + """ + e_electronic: Optional[float] = None + """ + Electronic energy + """ + n: Optional[float] = None + """ + Refractive index + """ + e_ij_max: Optional[float] = None + """ + Maximum elastic constant + """ + weighted_surface_energy_EV_PER_ANG2: Optional[float] = None + """ + Weighted surface energy in eV/Ų + """ + weighted_surface_energy: Optional[float] = None + """ + Weighted surface energy + """ + weighted_work_function: Optional[float] = None + """ + Weighted work function + """ + surface_anisotropy: Optional[float] = None + """ + Surface anisotropy + """ + shape_factor: Optional[float] = None + """ + Shape factor + """ + has_reconstructed: Optional[bool] = None + """ + Whether surface has reconstruction + """ + possible_species: Optional[List[str]] = None + """ + Possible ionic species + """ + has_props: HasProps + theoretical: bool + """ + Whether this is a theoretical material + """ + database_IDs: DatabaseIDs + + +class Lattice7(BaseModel): + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + matrix: List[MatrixItem] = Field(..., max_length=3, min_length=3) + pbc: List[bool] = Field(..., max_length=3, min_length=3) + + +class Kpoint6(BaseModel): + lattice: Lattice7 + fcoords: List[float] = Field(..., max_length=3, min_length=3) + ccoords: List[float] = Field(..., max_length=3, min_length=3) + label: Optional[str] = None + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + + +class Cbm3(BaseModel): + band_index: Dict[str, List[float]] + kpoint_index: List[float] + kpoint: Kpoint6 + energy: float + projections: Dict[str, List[List[float]]] + + +class Lattice8(BaseModel): + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + matrix: List[MatrixItem] = Field(..., max_length=3, min_length=3) + pbc: List[bool] = Field(..., max_length=3, min_length=3) + + +class Kpoint7(BaseModel): + lattice: Lattice8 + fcoords: List[float] = Field(..., max_length=3, min_length=3) + ccoords: List[float] = Field(..., max_length=3, min_length=3) + label: Optional[str] = None + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + + +class Vbm3(BaseModel): + band_index: Dict[str, List[float]] + kpoint_index: List[float] + kpoint: Kpoint7 + energy: float + projections: Dict[str, List[List[float]]] + + +class BandstructureData(BaseModel): + task_id: str + band_gap: float + cbm: Optional[Cbm3] = None + vbm: Optional[Vbm3] = None + efermi: Optional[float] = None + is_gap_direct: bool + is_metal: bool + magnetic_ordering: str + equivalent_labels: Dict[str, Dict[str, Dict[str, str]]] + nbands: float + direct_gap: float + + +class Lattice9(BaseModel): + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + matrix: List[MatrixItem] = Field(..., max_length=3, min_length=3) + pbc: List[bool] = Field(..., max_length=3, min_length=3) + + +class Kpoint8(BaseModel): + lattice: Lattice9 + fcoords: List[float] = Field(..., max_length=3, min_length=3) + ccoords: List[float] = Field(..., max_length=3, min_length=3) + label: Optional[str] = None + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + + +class BandExtrema(BaseModel): + band_index: Dict[str, List[float]] + kpoint_index: List[float] + kpoint: Kpoint8 + energy: float + projections: Dict[str, List[List[float]]] + + +class Lattice10(BaseModel): + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + matrix: List[MatrixItem] = Field(..., max_length=3, min_length=3) + pbc: List[bool] = Field(..., max_length=3, min_length=3) + + +class Kpoint9(BaseModel): + lattice: Lattice10 + fcoords: List[float] = Field(..., max_length=3, min_length=3) + ccoords: List[float] = Field(..., max_length=3, min_length=3) + label: Optional[str] = None + module: str = Field(..., alias="@module") + class_: str = Field(..., alias="@class") + + +class DosData(BaseModel): + task_id: str + band_gap: float + cbm: Optional[float] = None + vbm: Optional[float] = None + efermi: float + spin_polarization: Optional[float] = None diff --git a/dist/py/apse/db/materials_project/legacy/__init__.py b/dist/py/apse/db/materials_project/legacy/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/apse/db/materials_project/legacy/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/apse/db/materials_project/legacy/material.py b/dist/py/apse/db/materials_project/legacy/material.py new file mode 100644 index 000000000..bf190cc7a --- /dev/null +++ b/dist/py/apse/db/materials_project/legacy/material.py @@ -0,0 +1,209 @@ +# generated by datamodel-codegen: +# filename: apse/db/materials_project/legacy/material.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel + + +class Spacegroup(BaseModel): + symprec: Optional[float] = None + source: Optional[str] = None + symbol: Optional[str] = None + number: Optional[int] = None + point_group: Optional[str] = None + crystal_system: Optional[str] = None + hall: Optional[str] = None + + +class Elasticity(BaseModel): + G_Reuss: Optional[float] = None + """ + Reuss shear modulus in GPa + """ + G_VRH: Optional[float] = None + """ + Voigt-Reuss-Hill shear modulus in GPa + """ + G_Voigt: Optional[float] = None + """ + Voigt shear modulus in GPa + """ + G_Voigt_Reuss_Hill: Optional[float] = None + """ + Voigt-Reuss-Hill shear modulus in GPa (alternative field) + """ + K_Reuss: Optional[float] = None + """ + Reuss bulk modulus in GPa + """ + K_VRH: Optional[float] = None + """ + Voigt-Reuss-Hill bulk modulus in GPa + """ + K_Voigt: Optional[float] = None + """ + Voigt bulk modulus in GPa + """ + K_Voigt_Reuss_Hill: Optional[float] = None + """ + Voigt-Reuss-Hill bulk modulus in GPa (alternative field) + """ + elastic_anisotropy: Optional[float] = None + """ + Elastic anisotropy + """ + elastic_tensor: Optional[List[List[float]]] = None + """ + 6x6 elastic tensor in GPa + """ + homogeneous_poisson: Optional[float] = None + """ + Homogeneous Poisson ratio + """ + poisson_ratio: Optional[float] = None + """ + Poisson ratio + """ + universal_anisotropy: Optional[float] = None + """ + Universal elastic anisotropy + """ + elastic_tensor_original: Optional[List[List[float]]] = None + """ + Original 6x6 elastic tensor in GPa + """ + compliance_tensor: Optional[List[List[float]]] = None + """ + 6x6 compliance tensor in GPa^-1 + """ + warnings: Optional[List[str]] = None + """ + Warnings about elastic properties + """ + nsites: Optional[int] = None + """ + Number of sites in the structure + """ + + +class MaterialsProjectLegacyMaterialSchema(BaseModel): + energy: float + """ + Total energy + """ + energy_per_atom: float + """ + Energy per atom + """ + volume: float + """ + Unit cell volume + """ + formation_energy_per_atom: float + """ + Formation energy per atom + """ + nsites: int + """ + Number of sites in unit cell + """ + unit_cell_formula: Dict[str, float] + """ + Unit cell formula as element counts + """ + pretty_formula: str + """ + Pretty formatted chemical formula + """ + is_hubbard: bool + """ + Whether Hubbard U correction was applied + """ + elements: List[str] + """ + List of elements in the material + """ + nelements: int + """ + Number of distinct elements + """ + e_above_hull: Optional[float] = None + """ + Energy above convex hull + """ + hubbards: Dict[str, Any] + """ + Hubbard U values + """ + is_compatible: bool + """ + Whether material is compatible + """ + spacegroup: Spacegroup + """ + Spacegroup information + """ + task_ids: List[str] + """ + List of task IDs + """ + band_gap: float + """ + Band gap value + """ + density: float + """ + Material density + """ + icsd_id: Optional[int] = None + """ + ICSD ID (single) + """ + icsd_ids: List[int] + """ + List of ICSD IDs + """ + cif: str + """ + CIF file content + """ + total_magnetization: float + """ + Total magnetization + """ + material_id: str + """ + Material ID from Materials Project + """ + oxide_type: str + """ + Oxide type classification + """ + tags: List[str] + """ + Material tags/names + """ + elasticity: Optional[Elasticity] = None + """ + Elasticity data + """ + piezo: Optional[Dict[str, Any]] = None + """ + Piezoelectric data + """ + diel: Optional[Dict[str, Any]] = None + """ + Dielectric data + """ + deprecated: bool + """ + Whether material is deprecated + """ + full_formula: str + """ + Full chemical formula + """ diff --git a/dist/py/apse/db/nist_jarvis/2024_3.13/__init__.py b/dist/py/apse/db/nist_jarvis/2024_3.13/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/apse/db/nist_jarvis/2024_3.13/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/apse/db/nist_jarvis/2024_3.13/atoms.py b/dist/py/apse/db/nist_jarvis/2024_3.13/atoms.py new file mode 100644 index 000000000..8a61ee435 --- /dev/null +++ b/dist/py/apse/db/nist_jarvis/2024_3.13/atoms.py @@ -0,0 +1,41 @@ +# generated by datamodel-codegen: +# filename: apse/db/nist_jarvis/2024.3.13/atoms.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel, ConfigDict, Field, RootModel + + +class ArrayOf3NumberElementsSchema(RootModel[List[float]]): + root: List[float] = Field(..., title="array of 3 number elements schema") + + +class NISTJARVISAtomsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + lattice_mat: Optional[List[ArrayOf3NumberElementsSchema]] = Field(None, max_length=3, min_length=3) + """ + Crystal lattice vectors as a 3x3 matrix, in Angstroms + """ + coords: Optional[List[ArrayOf3NumberElementsSchema]] = Field(None, min_length=1) + """ + Atomic coordinates for each atom in the unit cell + """ + elements: Optional[List[str]] = Field(None, min_length=1) + """ + Atomic elements for each atom in the unit cell in the same order as `coords` + """ + abc: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + angles: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + cartesian: Optional[bool] = None + """ + True if the coordinates are in Cartesian space, false if in fractional space + """ + props: Optional[List[str]] = None + """ + Additional properties for each of the atoms + """ diff --git a/dist/py/apse/db/nist_jarvis/2024_3.13/db_entry.py b/dist/py/apse/db/nist_jarvis/2024_3.13/db_entry.py new file mode 100644 index 000000000..fb1b0f285 --- /dev/null +++ b/dist/py/apse/db/nist_jarvis/2024_3.13/db_entry.py @@ -0,0 +1,55 @@ +# generated by datamodel-codegen: +# filename: apse/db/nist_jarvis/2024.3.13/db_entry.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel, ConfigDict, Field, RootModel + + +class ArrayOf3NumberElementsSchema(RootModel[List[float]]): + root: List[float] = Field(..., title="array of 3 number elements schema") + + +class NISTJARVISAtomsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + lattice_mat: Optional[List[ArrayOf3NumberElementsSchema]] = Field(None, max_length=3, min_length=3) + """ + Crystal lattice vectors as a 3x3 matrix, in Angstroms + """ + coords: Optional[List[ArrayOf3NumberElementsSchema]] = Field(None, min_length=1) + """ + Atomic coordinates for each atom in the unit cell + """ + elements: Optional[List[str]] = Field(None, min_length=1) + """ + Atomic elements for each atom in the unit cell in the same order as `coords` + """ + abc: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + angles: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + cartesian: Optional[bool] = None + """ + True if the coordinates are in Cartesian space, false if in fractional space + """ + props: Optional[List[str]] = None + """ + Additional properties for each of the atoms + """ + + +class NISTJARVISDbEntrySchema(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + atoms: Optional[NISTJARVISAtomsSchema] = Field(None, title="NIST JARVIS Atoms schema") + """ + NIST J.A.R.V.I.S. db entry `atoms` key schema. Based on https://figshare.com/articles/dataset/Monolayer_data_for_heterostructure/22344571 + """ + jid: Optional[str] = None + """ + The id of the entry in the database, e.g. JVASP-677 + """ diff --git a/dist/py/apse/db/third_party_sources.py b/dist/py/apse/db/third_party_sources.py new file mode 100644 index 000000000..c351fdecb --- /dev/null +++ b/dist/py/apse/db/third_party_sources.py @@ -0,0 +1,21 @@ +# generated by datamodel-codegen: +# filename: apse/db/third_party_sources.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class ThirdPartySources(BaseModel): + source: Source diff --git a/dist/py/apse/file/applications/espresso/7.2/__init__.py b/dist/py/apse/file/applications/espresso/7.2/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/apse/file/applications/espresso/7.2/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/apse/file/applications/espresso/7.2/pw.x/__init__.py b/dist/py/apse/file/applications/espresso/7.2/pw.x/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/apse/file/applications/espresso/7.2/pw.x/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/apse/file/applications/espresso/7.2/pw.x/atomic_positions.py b/dist/py/apse/file/applications/espresso/7.2/pw.x/atomic_positions.py new file mode 100644 index 000000000..c104feb6b --- /dev/null +++ b/dist/py/apse/file/applications/espresso/7.2/pw.x/atomic_positions.py @@ -0,0 +1,51 @@ +# generated by datamodel-codegen: +# filename: apse/file/applications/espresso/7.2/pw.x/atomic_positions.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, ConfigDict, Field, conint + + +class CardOption(Enum): + alat = "alat" + bohr = "bohr" + angstrom = "angstrom" + crystal = "crystal" + crystal_sg = "crystal_sg" + + +class Value(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + X: Optional[str] = None + """ + label of the atom as specified in ATOMIC_SPECIES + """ + x: float + """ + atomic positions + """ + y: float + """ + atomic positions + """ + z: float + """ + atomic positions + """ + if_pos_1_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(1)", title="integer one or zero") + if_pos_2_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(2)", title="integer one or zero") + if_pos_3_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(3)", title="integer one or zero") + + +class AtomicPositionsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + card_option: Optional[CardOption] = "alat" + values: Optional[List[Value]] = None diff --git a/dist/py/apse/file/applications/espresso/7.2/pw.x/atomic_species.py b/dist/py/apse/file/applications/espresso/7.2/pw.x/atomic_species.py new file mode 100644 index 000000000..8da561cf7 --- /dev/null +++ b/dist/py/apse/file/applications/espresso/7.2/pw.x/atomic_species.py @@ -0,0 +1,34 @@ +# generated by datamodel-codegen: +# filename: apse/file/applications/espresso/7.2/pw.x/atomic_species.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel, ConfigDict + + +class Value(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + X: Optional[str] = None + """ + label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in "Xn" (e.g. Fe1) or "X_*" or "X-*" (e.g. C1, C_h; max total length cannot exceed 3 characters) + """ + Mass_X: Optional[float] = None + """ + mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided) + """ + PseudoPot_X: Optional[str] = None + """ + PseudoPot_X + """ + + +class AtomicSpeciesSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + values: Optional[List[Value]] = None diff --git a/dist/py/apse/file/applications/espresso/7.2/pw.x/cell.py b/dist/py/apse/file/applications/espresso/7.2/pw.x/cell.py new file mode 100644 index 000000000..6c77563cd --- /dev/null +++ b/dist/py/apse/file/applications/espresso/7.2/pw.x/cell.py @@ -0,0 +1,111 @@ +# generated by datamodel-codegen: +# filename: apse/file/applications/espresso/7.2/pw.x/cell.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, RootModel + + +class CellDofree(Enum): + all = "all" + ibrav = "ibrav" + a = "a" + b = "b" + c = "c" + fixa = "fixa" + fixb = "fixb" + fixc = "fixc" + x = "x" + y = "y" + xy = "xy" + xz = "xz" + xyz = "xyz" + shape = "shape" + volume = "volume" + field_2Dxy = "2Dxy" + field_2Dshape = "2Dshape" + epitaxial_ab = "epitaxial_ab" + epitaxial_ac = "epitaxial_ac" + epitaxial_bc = "epitaxial_bc" + + +class CellDynamics(Enum): + none = "none" + sd = "sd" + damp_pr = "damp-pr" + damp_w = "damp-w" + bfgs = "bfgs" + + +class CellSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + press: Optional[float] = 0 + """ + Target pressure [KBar] in a variable-cell md or relaxation run. + """ + wmass: Optional[float] = None + """ + Fictitious cell mass [amu] for variable-cell simulations (both 'vc-md' and 'vc-relax'). Default: 0.75*Tot_Mass/pi**2 for Parrinello-Rahman MD; 0.75*Tot_Mass/pi**2/Omega**(2/3) for Wentzcovitch MD + """ + cell_factor: Optional[float] = None + """ + Used in the construction of the pseudopotential tables. It should exceed the maximum linear contraction of the cell during a simulation. Default: 2.0 for variable-cell calculations, 1.0 otherwise + """ + press_conv_thr: Optional[float] = 0.5 + """ + Convergence threshold on the pressure for variable cell relaxation ('vc-relax' : note that the other convergence thresholds for ionic relaxation apply as well). + """ + cell_dofree: Optional[CellDofree] = "all" + """ + Select which of the cell parameters should be moved + """ + cell_dynamics: Optional[CellDynamics] = "bfgs" + """ + CASE ( calculation == 'vc-relax' ) + """ + + +class CellDynamics1(Enum): + none = "none" + pr = "pr" + w = "w" + + +class CellSchema1(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + press: Optional[float] = 0 + """ + Target pressure [KBar] in a variable-cell md or relaxation run. + """ + wmass: Optional[float] = None + """ + Fictitious cell mass [amu] for variable-cell simulations (both 'vc-md' and 'vc-relax'). Default: 0.75*Tot_Mass/pi**2 for Parrinello-Rahman MD; 0.75*Tot_Mass/pi**2/Omega**(2/3) for Wentzcovitch MD + """ + cell_factor: Optional[float] = None + """ + Used in the construction of the pseudopotential tables. It should exceed the maximum linear contraction of the cell during a simulation. Default: 2.0 for variable-cell calculations, 1.0 otherwise + """ + press_conv_thr: Optional[float] = 0.5 + """ + Convergence threshold on the pressure for variable cell relaxation ('vc-relax' : note that the other convergence thresholds for ionic relaxation apply as well). + """ + cell_dofree: Optional[CellDofree] = "all" + """ + Select which of the cell parameters should be moved + """ + cell_dynamics: Optional[CellDynamics1] = None + """ + CASE ( calculation == 'vc-md' ) + """ + + +class ESSE(RootModel[Union[CellSchema, CellSchema1]]): + root: Union[CellSchema, CellSchema1] = Field(..., title="cell schema") diff --git a/dist/py/apse/file/applications/espresso/7.2/pw.x/cell_parameters.py b/dist/py/apse/file/applications/espresso/7.2/pw.x/cell_parameters.py new file mode 100644 index 000000000..f85e3ad38 --- /dev/null +++ b/dist/py/apse/file/applications/espresso/7.2/pw.x/cell_parameters.py @@ -0,0 +1,36 @@ +# generated by datamodel-codegen: +# filename: apse/file/applications/espresso/7.2/pw.x/cell_parameters.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, ConfigDict, Field + + +class CardOption(Enum): + alat = "alat" + bohr = "bohr" + angstrom = "angstrom" + + +class Values(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + v1: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + v2: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + v3: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + + +class CellParametersSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + card_option: Optional[CardOption] = None + """ + label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in "Xn" (e.g. Fe1) or "X_*" or "X-*" (e.g. C1, C_h; max total length cannot exceed 3 characters) + """ + values: Optional[Values] = None diff --git a/dist/py/apse/file/applications/espresso/7.2/pw.x/control.py b/dist/py/apse/file/applications/espresso/7.2/pw.x/control.py new file mode 100644 index 000000000..04a8e6ef6 --- /dev/null +++ b/dist/py/apse/file/applications/espresso/7.2/pw.x/control.py @@ -0,0 +1,169 @@ +# generated by datamodel-codegen: +# filename: apse/file/applications/espresso/7.2/pw.x/control.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, ConfigDict + + +class Calculation(Enum): + scf = "scf" + nscf = "nscf" + bands = "bands" + relax = "relax" + md = "md" + vc_relax = "vc-relax" + vc_md = "vc-md" + + +class Verbosity(Enum): + high = "high" + low = "low" + debug = "debug" + medium = "medium" + minimal = "minimal" + default = "default" + + +class RestartMode(Enum): + from_scratch = "from_scratch" + restart = "restart" + + +class DiskIo(Enum): + high = "high" + medium = "medium" + low = "low" + nowf = "nowf" + none = "none" + + +class ControlSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + calculation: Optional[Calculation] = "scf" + """ + A string describing the task to be performed + """ + title: Optional[str] = "" + """ + reprinted on output. + """ + verbosity: Optional[Verbosity] = "low" + """ + Currently two verbosity levels are implemented: high, low. 'debug' and 'medium' have the same effect as 'high'; 'default' and 'minimal' as 'low' + """ + restart_mode: Optional[RestartMode] = "from_scratch" + wf_collect: Optional[bool] = None + """ + OBSOLETE - NO LONGER IMPLEMENTED + """ + nstep: Optional[float] = 1 + """ + Default: 1 if calculation == 'scf', 'nscf', 'bands'; 50 for the other cases; Number of molecular-dynamics or structural optimization steps performed in this run. If set to 0, the code performs a quick "dry run", stopping just after initialization. This is useful to check for input correctness and to have the summary printed. NOTE: in MD calculations, the code will perform "nstep" steps even if restarting from a previously interrupted calculation. + """ + iprint: Optional[float] = None + """ + band energies are written every iprint iterations + """ + tstress: Optional[bool] = False + """ + calculate stress. It is set to .TRUE. automatically if calculation == 'vc-md' or 'vc-relax' + """ + tprnfor: Optional[bool] = None + """ + calculate forces. It is set to .TRUE. automatically if calculation == 'relax','md','vc-md' + """ + dt: Optional[float] = 20 + """ + time step for molecular dynamics, in Rydberg atomic units (1 a.u.=4.8378 * 10^-17 s : beware, the CP code uses Hartree atomic units, half that much!!!) + """ + outdir: Optional[str] = None + """ + input, temporary, output files are found in this directory, see also wfcdir + """ + wfcdir: Optional[str] = None + """ + This directory specifies where to store files generated by each processor (*.wfc{N}, *.igk{N}, etc.). Useful for machines without a parallel file system: set wfcdir to a local file system, while outdir should be a parallel or network file system, visible to all processors. Beware: in order to restart from interrupted runs, or to perform further calculations using the produced data files, you may need to copy files to outdir. Works only for pw.x. + """ + prefix: Optional[str] = "pwscf" + """ + prepended to input/output filenames: prefix.wfc, prefix.rho, etc. + """ + lkpoint_dir: Optional[bool] = None + """ + OBSOLETE - NO LONGER IMPLEMENTED + """ + max_seconds: Optional[float] = 10000000 + """ + Jobs stops after max_seconds CPU time. Use this option in conjunction with option restart_mode if you need to split a job too long to complete into shorter jobs that fit into your batch queues. + """ + etot_conv_thr: Optional[float] = 0.0001 + """ + Convergence threshold on total energy (a.u) for ionic minimization: the convergence criterion is satisfied when the total energy changes less than etot_conv_thr between two consecutive scf steps. Note that etot_conv_thr is extensive, like the total energy. See also forc_conv_thr - both criteria must be satisfied + """ + forc_conv_thr: Optional[float] = 0.001 + """ + Convergence threshold on forces (a.u) for ionic minimization: the convergence criterion is satisfied when all components of all forces are smaller than forc_conv_thr. See also etot_conv_thr - both criteria must be satisfied + """ + disk_io: Optional[DiskIo] = None + """ + Specifies the amount of disk I/O activity: (only for binary files and xml data file in data directory; other files printed at each molecular dynamics / structural optimization step are not controlled by this option ) + """ + pseudo_dir: Optional[str] = None + """ + directory containing pseudopotential files. Default: value of the $ESPRESSO_PSEUDO environment variable if set; '$HOME/espresso/pseudo/' otherwise + """ + tefield: Optional[bool] = False + """ + If .TRUE. a saw-like potential simulating an electric field is added to the bare ionic potential. See variables edir, eamp, emaxpos, eopreg for the form and size of the added potential. + """ + dipfield: Optional[bool] = False + """ + If .TRUE. and tefield==.TRUE. a dipole correction is also added to the bare ionic potential - implements the recipe of L. Bengtsson, PRB 59, 12301 (1999). See variables edir, emaxpos, eopreg for the form of the correction. Must be used ONLY in a slab geometry, for surface calculations, with the discontinuity FALLING IN THE EMPTY SPACE. + """ + lelfield: Optional[bool] = False + """ + If .TRUE. a homogeneous finite electric field described through the modern theory of the polarization is applied. This is different from tefield == .true. ! + """ + nberrycyc: Optional[int] = 1 + """ + In the case of a finite electric field ( lelfield == .TRUE. ) it defines the number of iterations for converging the wavefunctions in the electric field Hamiltonian, for each external iteration on the charge density + """ + lorbm: Optional[bool] = False + """ + If .TRUE. perform orbital magnetization calculation. + """ + lberry: Optional[bool] = False + """ + If .TRUE. perform a Berry phase calculation. See the header of PW/src/bp_c_phase.f90 for documentation + """ + gdir: Optional[float] = None + """ + For Berry phase calculation: direction of the k-point strings in reciprocal space. Allowed values: 1, 2, 3 1=first, 2=second, 3=third reciprocal lattice vector For calculations with finite electric fields (lelfield==.true.) "gdir" is the direction of the field. + """ + nppstr: Optional[float] = None + """ + For Berry phase calculation: number of k-points to be calculated along each symmetry-reduced string. The same for calculation with finite electric fields (lelfield==.true.). + """ + gate: Optional[bool] = False + """ + In the case of charged cells (tot_charge .ne. 0) setting gate = .TRUE. represents the counter charge (i.e. -tot_charge) not by a homogeneous background charge but with a charged plate, which is placed at zgate (see below). Details of the gate potential can be found in T. Brumme, M. Calandra, F. Mauri; PRB 89, 245406 (2014). Note, that in systems which are not symmetric with respect to the plate, one needs to enable the dipole correction! (dipfield=.true.). Currently, symmetry can be used with gate=.true. but carefully check that no symmetry is included which maps z to -z even if in principle one could still use them for symmetric systems (i.e. no dipole correction). For nosym=.false. verbosity is set to 'high'. Note: this option was called "monopole" in v6.0 and 6.1 of pw.x + """ + twochem: Optional[bool] = False + """ + IF .TRUE. , a two chemical potential calculation for the simulation of photoexcited systems is performed, constraining a fraction of the electrons in the conduction manifold. + """ + lfcp: Optional[bool] = False + """ + If .TRUE. perform a constant bias potential (constant-mu) calculation for a system with ESM method. See the header of PW/src/fcp_module.f90 for documentation. To perform the calculation, you must set a namelist FCP. + """ + trism: Optional[bool] = False + """ + If .TRUE. perform a 3D-RISM-SCF calculation [for details see H.Sato et al., JCP 112, 9463 (2000), doi:10.1063/1.481564]. The solvent's distributions are calculated by 3D-RISM, though solute is treated as SCF. The charge density and the atomic positions are optimized, simultaneously with the solvents. To perform the calculation, you must set a namelist RISM and a card SOLVENTS. If assume_isolated = 'esm' and esm_bc = 'bc1', Laue-RISM is calculated instead of 3D-RISM and coupled with ESM method (i.e. ESM-RISM). [for details see S.Nishihara and M.Otani, PRB 96, 115429 (2017)]. The default of mixing_beta is 0.2 for both 3D-RISM and Laue-RISM. For structural relaxation with BFGS, ignore_wolfe is always .TRUE. . + """ diff --git a/dist/py/apse/file/applications/espresso/7.2/pw.x/electrons.py b/dist/py/apse/file/applications/espresso/7.2/pw.x/electrons.py new file mode 100644 index 000000000..88a37324a --- /dev/null +++ b/dist/py/apse/file/applications/espresso/7.2/pw.x/electrons.py @@ -0,0 +1,139 @@ +# generated by datamodel-codegen: +# filename: apse/file/applications/espresso/7.2/pw.x/electrons.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, ConfigDict, Field + + +class MixingMode(Enum): + plain = "plain" + TF = "TF" + local_TF = "local-TF" + + +class Diagonalization(Enum): + david = "david" + cg = "cg" + ppcg = "ppcg" + paro = "paro" + ParO = "ParO" + rmm_davidson = "rmm-davidson" + rmm_paro = "rmm-paro" + + +class EfieldPhase(Enum): + read = "read" + write = "write" + none = "none" + + +class Startingpot(Enum): + atomic = "atomic" + file = "file" + + +class Startingwfc(Enum): + atomic = "atomic" + atomic_random = "atomic+random" + random = "random" + file = "file" + + +class ElectronsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + electron_maxstep: Optional[int] = 100 + """ + maximum number of iterations in a scf step. If exact exchange is active, this will affect the inner loops. + """ + exx_maxstep: Optional[int] = 100 + """ + maximum number of outer iterations in a scf calculation with exact exchange. + """ + scf_must_converge: Optional[bool] = True + """ + If .false. do not stop molecular dynamics or ionic relaxation when electron_maxstep is reached. Use with care. + """ + conv_thr: Optional[float] = None + adaptive_thr: Optional[bool] = False + """ + If .TRUE. this turns on the use of an adaptive conv_thr for the inner scf loops when using EXX. + """ + conv_thr_init: Optional[float] = None + """ + When adaptive_thr = .TRUE. this is the convergence threshold used for the first scf cycle. + """ + conv_thr_multi: Optional[float] = None + """ + When adaptive_thr = .TRUE. the convergence threshold for each scf cycle is given by: max( conv_thr, conv_thr_multi * dexx ) + """ + mixing_mode: Optional[MixingMode] = "plain" + mixing_beta: Optional[float] = None + """ + mixing factor for self-consistency + """ + mixing_ndim: Optional[int] = 8 + """ + number of iterations used in mixing scheme + """ + mixing_fixed_ns: Optional[int] = 0 + """ + For DFT+U : number of iterations with fixed ns ( ns is the atomic density appearing in the Hubbard term ). + """ + diagonalization: Optional[Diagonalization] = "david" + diago_thr_init: Optional[float] = None + """ + Convergence threshold (ethr) for iterative diagonalization (the check is on eigenvalue convergence). + """ + diago_cg_maxiter: Optional[int] = None + """ + For conjugate gradient diagonalization: max number of iterations + """ + diago_ppcg_maxiter: Optional[int] = None + """ + For ppcg diagonalization: max number of iterations + """ + diago_david_ndim: Optional[int] = 2 + """ + For Davidson diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed). + """ + diago_rmm_ndim: Optional[int] = 4 + """ + For RMM-DIIS diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed). + """ + diago_rmm_conv: Optional[bool] = False + """ + If .TRUE., RMM-DIIS is performed up to converge. If .FALSE., RMM-DIIS is performed only once. + """ + diago_gs_nblock: Optional[int] = 16 + """ + For RMM-DIIS diagonalization: blocking size of Gram-Schmidt orthogonalization + """ + diago_full_acc: Optional[bool] = False + """ + If .TRUE. all the empty states are diagonalized at the same level of accuracy of the occupied ones. Otherwise the empty states are diagonalized using a larger threshold (this should not affect total energy, forces, and other ground-state properties). + """ + efield: Optional[float] = None + """ + Amplitude of the finite electric field (in Ry a.u.; 1 a.u. = 36.3609*10^10 V/m). Used only if lelfield==.TRUE. and if k-points (K_POINTS card) are not automatic. + """ + efield_cart: Optional[List[float]] = Field( + None, max_length=3, min_length=3, title="array of 3 number elements schema" + ) + efield_phase: Optional[EfieldPhase] = "none" + startingpot: Optional[Startingpot] = None + startingwfc: Optional[Startingwfc] = "atomic+random" + tqr: Optional[bool] = False + """ + If .true., use a real-space algorithm for augmentation charges of ultrasoft pseudopotentials and PAWsets. Faster but numerically less accurate than the default G-space algorithm. Use with care and after testing! + """ + real_space: Optional[bool] = False + """ + If .true., exploit real-space localization to compute matrix elements for nonlocal projectors. Faster and in principle better scaling than the default G-space algorithm, but numerically less accurate, may lead to some loss of translational invariance. Use with care and after testing! + """ diff --git a/dist/py/apse/file/applications/espresso/7.2/pw.x/hubbard.py b/dist/py/apse/file/applications/espresso/7.2/pw.x/hubbard.py new file mode 100644 index 000000000..0069f0524 --- /dev/null +++ b/dist/py/apse/file/applications/espresso/7.2/pw.x/hubbard.py @@ -0,0 +1,194 @@ +# generated by datamodel-codegen: +# filename: apse/file/applications/espresso/7.2/pw.x/hubbard.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field + + +class CardOption(Enum): + atomic = "atomic" + ortho_atomic = "ortho-atomic" + norm_atomic = "norm-atomic" + wf = "wf" + pseudo = "pseudo" + + +class U(Enum): + U = "U" + + +class Values(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + U_1: Optional[U] = Field(None, alias="U") + """ + string constant "U"; indicates the specs for the U parameter will be given + """ + label: Optional[str] = None + """ + label of the atom (as defined in ATOMIC_SPECIES) + """ + manifold: Optional[str] = None + """ + specs of the manifold (e.g., 3d, 2p...) + """ + u_val: Optional[float] = None + """ + value of the U parameter (in eV) + """ + + +class J0(Enum): + J0 = "J0" + + +class Values2(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + J0_1: Optional[J0] = Field(None, alias="J0") + """ + string constant "J0"; indicates the specs for the J0 parameter will be given + """ + label: Optional[str] = None + """ + label of the atom (as defined in ATOMIC_SPECIES) + """ + manifold: Optional[str] = None + """ + specs of the manifold (e.g., 3d, 2p...) + """ + j0_val: Optional[float] = None + """ + value of the J0 parameter (in eV) + """ + + +class ParamType(Enum): + U = "U" + J = "J" + B = "B" + E2 = "E2" + E3 = "E3" + + +class Value(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + paramType: Optional[ParamType] = None + """ + character describing the type of Hubbard parameter allowed values: U, J and either B (for d-orbitals) or E2 and E3 (for f-orbitals) + """ + label: Optional[str] = None + """ + label of the atom (as defined in ATOMIC_SPECIES) + """ + manifold: Optional[str] = None + """ + specs of the manifold (e.g., 3d, 2p...) + """ + paramValue: Optional[float] = None + """ + value of the J0 parameter (in eV) + """ + + +class Values3(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + U_1: Optional[U] = Field(None, alias="U") + """ + string constant "U"; indicates the specs for the U parameter will be given + """ + label: Optional[str] = None + """ + label of the atom (as defined in ATOMIC_SPECIES) + """ + manifold: Optional[str] = None + """ + specs of the manifold (e.g., 3d, 2p...) + """ + u_val: Optional[float] = None + """ + value of the U parameter (in eV) + """ + + +class Values4(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + J0_1: Optional[J0] = Field(None, alias="J0") + """ + string constant "J0"; indicates the specs for the J0 parameter will be given + """ + label: Optional[str] = None + """ + label of the atom (as defined in ATOMIC_SPECIES) + """ + manifold: Optional[str] = None + """ + specs of the manifold (e.g., 3d, 2p...) + """ + j0_val: Optional[float] = None + """ + value of the J0 parameter (in eV) + """ + + +class V(Enum): + V = "V" + + +class Values5(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + V_1: Optional[V] = Field(None, alias="V") + """ + string constant "V"; indicates the specs for the V parameter will be given + """ + label_I_: Optional[str] = Field(None, alias="label(I)") + """ + label of the atom I (as defined in ATOMIC_SPECIES) + """ + manifold_I_: Optional[str] = Field(None, alias="manifold(I)") + """ + specs of the manifold for atom I (e.g., 3d, 2p...) + """ + label_J_: Optional[str] = Field(None, alias="label(J)") + """ + label of the atom J (as defined in ATOMIC_SPECIES) + """ + manifold_J_: Optional[str] = Field(None, alias="manifold(J)") + """ + specs of the manifold for atom J (e.g., 3d, 2p...) + """ + I: Optional[int] = None + """ + index of the atom I + """ + J: Optional[int] = None + """ + index of the atom J + """ + v_val_I_J_: Optional[float] = Field(None, alias="v_val(I,J)") + """ + value of the V parameter for the atom pair I,J (in eV) + """ + + +class HubbardSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + card_option: Optional[CardOption] = None + values: Optional[Union[List[Union[Values, Values2]], List[Value], List[Union[Values3, Values4, Values5]]]] = None diff --git a/dist/py/apse/file/applications/espresso/7.2/pw.x/ions.py b/dist/py/apse/file/applications/espresso/7.2/pw.x/ions.py new file mode 100644 index 000000000..f2d39f649 --- /dev/null +++ b/dist/py/apse/file/applications/espresso/7.2/pw.x/ions.py @@ -0,0 +1,422 @@ +# generated by datamodel-codegen: +# filename: apse/file/applications/espresso/7.2/pw.x/ions.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, RootModel + + +class IonPositions(Enum): + default = "default" + from_input = "from_input" + + +class IonVelocities(Enum): + default = "default" + from_input = "from_input" + + +class PotExtrapolation(Enum): + none = "none" + atomic = "atomic" + first_order = "first_order" + second_order = "second_order" + + +class WfcExtrapolation(Enum): + none = "none" + first_order = "first_order" + second_order = "second_order" + + +class IonTemperature(Enum): + rescaling = "rescaling" + rescale_v = "rescale-v" + rescale_T = "rescale-T" + reduce_T = "reduce-T" + berendsen = "berendsen" + andersen = "andersen" + svr = "svr" + initial = "initial" + not_controlled = "not_controlled" + + +class IonDynamics(Enum): + bfgs = "bfgs" + damp = "damp" + fire = "fire" + + +class IonsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + ion_positions: Optional[IonPositions] = "default" + ion_velocities: Optional[IonVelocities] = "default" + pot_extrapolation: Optional[PotExtrapolation] = "atomic" + """ + Used to extrapolate the potential from preceding ionic steps. + """ + wfc_extrapolation: Optional[WfcExtrapolation] = "none" + """ + Used to extrapolate the wavefunctions from preceding ionic steps. + """ + remove_rigid_rot: Optional[bool] = False + """ + This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells. + """ + ion_temperature: Optional[IonTemperature] = "not_controlled" + tempw: Optional[float] = 300 + """ + Starting temperature (Kelvin) in MD runs target temperature for most thermostats. + """ + tolp: Optional[float] = 100 + """ + Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp. + """ + delta_t: Optional[float] = 1 + nraise: Optional[int] = 1 + refold_pos: Optional[bool] = False + """ + This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell. + """ + upscale: Optional[float] = 100 + """ + Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale. + """ + bfgs_ndim: Optional[int] = 1 + """ + Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm. + """ + trust_radius_max: Optional[float] = 0.8 + """ + Maximum ionic displacement in the structural relaxation. (bfgs only) + """ + trust_radius_min: Optional[float] = 0.001 + """ + Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only) + """ + trust_radius_ini: Optional[float] = 0.5 + """ + Initial ionic displacement in the structural relaxation. (bfgs only) + """ + w_1: Optional[float] = 0.01 + w_2: Optional[float] = 0.5 + """ + Parameters used in line search based on the Wolfe conditions. (bfgs only) + """ + fire_alpha_init: Optional[float] = 0.2 + """ + Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3 + """ + fire_falpha: Optional[float] = 0.99 + """ + Scaling of the alpha mixing parameter for steps with P > 0; + """ + fire_nmin: Optional[int] = 5 + """ + Minimum number of steps with P > 0 before increase of dt + """ + fire_f_inc: Optional[float] = 1.1 + """ + Factor for increasing dt + """ + fire_f_dec: Optional[float] = 0.5 + """ + Factor for decreasing dt + """ + fire_dtmax: Optional[float] = 10 + """ + Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt + """ + ion_dynamics: Optional[IonDynamics] = "bfgs" + """ + CASE: calculation == 'relax' + """ + + +class IonDynamics1(Enum): + verlet = "verlet" + langevin = "langevin" + langevin_smc = "langevin-smc" + + +class IonsSchema1(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + ion_positions: Optional[IonPositions] = "default" + ion_velocities: Optional[IonVelocities] = "default" + pot_extrapolation: Optional[PotExtrapolation] = "atomic" + """ + Used to extrapolate the potential from preceding ionic steps. + """ + wfc_extrapolation: Optional[WfcExtrapolation] = "none" + """ + Used to extrapolate the wavefunctions from preceding ionic steps. + """ + remove_rigid_rot: Optional[bool] = False + """ + This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells. + """ + ion_temperature: Optional[IonTemperature] = "not_controlled" + tempw: Optional[float] = 300 + """ + Starting temperature (Kelvin) in MD runs target temperature for most thermostats. + """ + tolp: Optional[float] = 100 + """ + Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp. + """ + delta_t: Optional[float] = 1 + nraise: Optional[int] = 1 + refold_pos: Optional[bool] = False + """ + This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell. + """ + upscale: Optional[float] = 100 + """ + Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale. + """ + bfgs_ndim: Optional[int] = 1 + """ + Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm. + """ + trust_radius_max: Optional[float] = 0.8 + """ + Maximum ionic displacement in the structural relaxation. (bfgs only) + """ + trust_radius_min: Optional[float] = 0.001 + """ + Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only) + """ + trust_radius_ini: Optional[float] = 0.5 + """ + Initial ionic displacement in the structural relaxation. (bfgs only) + """ + w_1: Optional[float] = 0.01 + w_2: Optional[float] = 0.5 + """ + Parameters used in line search based on the Wolfe conditions. (bfgs only) + """ + fire_alpha_init: Optional[float] = 0.2 + """ + Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3 + """ + fire_falpha: Optional[float] = 0.99 + """ + Scaling of the alpha mixing parameter for steps with P > 0; + """ + fire_nmin: Optional[int] = 5 + """ + Minimum number of steps with P > 0 before increase of dt + """ + fire_f_inc: Optional[float] = 1.1 + """ + Factor for increasing dt + """ + fire_f_dec: Optional[float] = 0.5 + """ + Factor for decreasing dt + """ + fire_dtmax: Optional[float] = 10 + """ + Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt + """ + ion_dynamics: Optional[IonDynamics1] = "verlet" + """ + CASE: calculation == 'md' + """ + + +class IonDynamics2(Enum): + bfgs = "bfgs" + damp = "damp" + + +class IonsSchema2(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + ion_positions: Optional[IonPositions] = "default" + ion_velocities: Optional[IonVelocities] = "default" + pot_extrapolation: Optional[PotExtrapolation] = "atomic" + """ + Used to extrapolate the potential from preceding ionic steps. + """ + wfc_extrapolation: Optional[WfcExtrapolation] = "none" + """ + Used to extrapolate the wavefunctions from preceding ionic steps. + """ + remove_rigid_rot: Optional[bool] = False + """ + This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells. + """ + ion_temperature: Optional[IonTemperature] = "not_controlled" + tempw: Optional[float] = 300 + """ + Starting temperature (Kelvin) in MD runs target temperature for most thermostats. + """ + tolp: Optional[float] = 100 + """ + Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp. + """ + delta_t: Optional[float] = 1 + nraise: Optional[int] = 1 + refold_pos: Optional[bool] = False + """ + This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell. + """ + upscale: Optional[float] = 100 + """ + Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale. + """ + bfgs_ndim: Optional[int] = 1 + """ + Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm. + """ + trust_radius_max: Optional[float] = 0.8 + """ + Maximum ionic displacement in the structural relaxation. (bfgs only) + """ + trust_radius_min: Optional[float] = 0.001 + """ + Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only) + """ + trust_radius_ini: Optional[float] = 0.5 + """ + Initial ionic displacement in the structural relaxation. (bfgs only) + """ + w_1: Optional[float] = 0.01 + w_2: Optional[float] = 0.5 + """ + Parameters used in line search based on the Wolfe conditions. (bfgs only) + """ + fire_alpha_init: Optional[float] = 0.2 + """ + Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3 + """ + fire_falpha: Optional[float] = 0.99 + """ + Scaling of the alpha mixing parameter for steps with P > 0; + """ + fire_nmin: Optional[int] = 5 + """ + Minimum number of steps with P > 0 before increase of dt + """ + fire_f_inc: Optional[float] = 1.1 + """ + Factor for increasing dt + """ + fire_f_dec: Optional[float] = 0.5 + """ + Factor for decreasing dt + """ + fire_dtmax: Optional[float] = 10 + """ + Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt + """ + ion_dynamics: Optional[IonDynamics2] = "bfgs" + """ + CASE: calculation == 'vc-relax' + """ + + +class IonDynamics3(Enum): + beeman = "beeman" + + +class IonsSchema3(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + ion_positions: Optional[IonPositions] = "default" + ion_velocities: Optional[IonVelocities] = "default" + pot_extrapolation: Optional[PotExtrapolation] = "atomic" + """ + Used to extrapolate the potential from preceding ionic steps. + """ + wfc_extrapolation: Optional[WfcExtrapolation] = "none" + """ + Used to extrapolate the wavefunctions from preceding ionic steps. + """ + remove_rigid_rot: Optional[bool] = False + """ + This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells. + """ + ion_temperature: Optional[IonTemperature] = "not_controlled" + tempw: Optional[float] = 300 + """ + Starting temperature (Kelvin) in MD runs target temperature for most thermostats. + """ + tolp: Optional[float] = 100 + """ + Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp. + """ + delta_t: Optional[float] = 1 + nraise: Optional[int] = 1 + refold_pos: Optional[bool] = False + """ + This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell. + """ + upscale: Optional[float] = 100 + """ + Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale. + """ + bfgs_ndim: Optional[int] = 1 + """ + Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm. + """ + trust_radius_max: Optional[float] = 0.8 + """ + Maximum ionic displacement in the structural relaxation. (bfgs only) + """ + trust_radius_min: Optional[float] = 0.001 + """ + Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only) + """ + trust_radius_ini: Optional[float] = 0.5 + """ + Initial ionic displacement in the structural relaxation. (bfgs only) + """ + w_1: Optional[float] = 0.01 + w_2: Optional[float] = 0.5 + """ + Parameters used in line search based on the Wolfe conditions. (bfgs only) + """ + fire_alpha_init: Optional[float] = 0.2 + """ + Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3 + """ + fire_falpha: Optional[float] = 0.99 + """ + Scaling of the alpha mixing parameter for steps with P > 0; + """ + fire_nmin: Optional[int] = 5 + """ + Minimum number of steps with P > 0 before increase of dt + """ + fire_f_inc: Optional[float] = 1.1 + """ + Factor for increasing dt + """ + fire_f_dec: Optional[float] = 0.5 + """ + Factor for decreasing dt + """ + fire_dtmax: Optional[float] = 10 + """ + Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt + """ + ion_dynamics: Optional[IonDynamics3] = "beeman" + """ + CASE: calculation == 'vc-md' + """ + + +class ESSE(RootModel[Union[IonsSchema, IonsSchema1, IonsSchema2, IonsSchema3]]): + root: Union[IonsSchema, IonsSchema1, IonsSchema2, IonsSchema3] = Field(..., title="ions schema") diff --git a/dist/py/apse/file/applications/espresso/7.2/pw.x/k_points.py b/dist/py/apse/file/applications/espresso/7.2/pw.x/k_points.py new file mode 100644 index 000000000..06f06a7cb --- /dev/null +++ b/dist/py/apse/file/applications/espresso/7.2/pw.x/k_points.py @@ -0,0 +1,73 @@ +# generated by datamodel-codegen: +# filename: apse/file/applications/espresso/7.2/pw.x/k_points.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, ConfigDict + + +class CardOption(Enum): + tpiba = "tpiba" + automatic = "automatic" + crystal = "crystal" + gamma = "gamma" + tpiba_b = "tpiba_b" + crystal_b = "crystal_b" + tpiba_c = "tpiba_c" + crystal_c = "crystal_c" + + +class Value(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + nks: Optional[int] = None + """ + Number of supplied special k-points. + """ + xk_x: Optional[float] = None + xk_y: Optional[float] = None + xk_z: Optional[float] = None + wk: Optional[float] = None + + +class Values(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + nk1: Optional[int] = None + """ + Number of supplied special k-points. + """ + nk2: Optional[int] = None + """ + Number of supplied special k-points. + """ + nk3: Optional[int] = None + """ + Number of supplied special k-points. + """ + sk1: Optional[int] = None + """ + Number of supplied special k-points. + """ + sk2: Optional[int] = None + """ + Number of supplied special k-points. + """ + sk3: Optional[int] = None + """ + Number of supplied special k-points. + """ + + +class KPointsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + card_option: Optional[CardOption] = None + values: Optional[Union[List[Value], Values]] = None diff --git a/dist/py/apse/file/applications/espresso/7.2/pw.x/system.py b/dist/py/apse/file/applications/espresso/7.2/pw.x/system.py new file mode 100644 index 000000000..55bf88243 --- /dev/null +++ b/dist/py/apse/file/applications/espresso/7.2/pw.x/system.py @@ -0,0 +1,841 @@ +# generated by datamodel-codegen: +# filename: apse/file/applications/espresso/7.2/pw.x/system.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, RootModel, confloat, conint + + +class Occupations(Enum): + smearing = "smearing" + tetrahedra = "tetrahedra" + tetrahedra_lin = "tetrahedra_lin" + tetrahedra_opt = "tetrahedra_opt" + fixed = "fixed" + from_input = "from_input" + + +class Smearing(Enum): + gaussian = "gaussian" + gauss = "gauss" + methfessel_paxton = "methfessel-paxton" + m_p = "m-p" + mp = "mp" + marzari_vanderbilt = "marzari-vanderbilt" + cold = "cold" + m_v = "m-v" + mv = "mv" + fermi_dirac = "fermi-dirac" + f_d = "f-d" + fd = "fd" + + +class PolType(Enum): + e = "e" + h = "h" + + +class ExxdivTreatment(Enum): + gygi_baldereschi = "gygi-baldereschi" + vcut_spherical = "vcut_spherical" + vcut_ws = "vcut_ws" + none = "none" + + +class HubbardOccItem(RootModel[conint(ge=1)]): + root: conint(ge=1) + + +class HubbardOccItem5(RootModel[conint(ge=1, le=3)]): + root: conint(ge=1, le=3) + + +class ConstrainedMagnetization(Enum): + none = "none" + total = "total" + atomic = "atomic" + total_direction = "total direction" + atomic_direction = "atomic direction" + + +class AssumeIsolated(Enum): + none = "none" + makov_payne = "makov-payne" + m_p = "m-p" + mp = "mp" + martyna_tuckerman = "martyna-tuckerman" + m_t = "m-t" + mt = "mt" + esm = "esm" + field_2D = "2D" + + +class EsmBc(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class VdwCorr(Enum): + none = "none" + grimme_d2 = "grimme-d2" + Grimme_D2 = "Grimme-D2" + DFT_D = "DFT-D" + dft_d = "dft-d" + grimme_d3 = "grimme-d3" + Grimme_D3 = "Grimme-D3" + DFT_D3 = "DFT-D3" + dft_d3 = "dft-d3" + TS = "TS" + ts = "ts" + ts_vdw = "ts-vdw" + ts_vdW = "ts-vdW" + tkatchenko_scheffler = "tkatchenko-scheffler" + MBD = "MBD" + mbd = "mbd" + many_body_dispersion = "many-body-dispersion" + mbd_vdw = "mbd_vdw" + XDM = "XDM" + xdm = "xdm" + + +class SystemSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + ibrav: int + nat: int + """ + number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms) + """ + ntyp: int + """ + number of types of atoms in the unit cell + """ + nbnd: Optional[int] = None + """ + Default: for an insulator, nbnd = number of valence bands (nbnd = # of electrons /2); for a metal, 20% more (minimum 4 more) + """ + nbnd_cond: Optional[int] = None + """ + Default: nbnd_cond = nbnd - # of electrons / 2 in the collinear case; nbnd_cond = nbnd - # of electrons in the noncollinear case. + """ + tot_charge: Optional[float] = 0 + starting_charge: Optional[float] = 0 + """ + starting charge on atomic type 'i', to create starting potential with startingpot = 'atomic'. + """ + tot_magnetization: Optional[float] = -10000 + """ + Total majority spin charge - minority spin charge. Used to impose a specific total electronic magnetization. If unspecified then tot_magnetization variable is ignored and the amount of electronic magnetization is determined during the self-consistent cycle. + """ + starting_magnetization: Optional[List[confloat(ge=-1.0, le=1.0)]] = None + ecutwfc: float + """ + kinetic energy cutoff (Ry) for wavefunctions + """ + ecutrho: Optional[float] = None + """ + Kinetic energy cutoff (Ry) for charge density and potential For norm-conserving pseudopotential you should stick to the default value, you can reduce it by a little but it will introduce noise especially on forces and stress. Default: 4 * ecutwfc + """ + ecutfock: Optional[float] = None + """ + Kinetic energy cutoff (Ry) for the exact exchange operator in EXX type calculations. By default this is the same as ecutrho but in some EXX calculations, a significant speed-up can be obtained by reducing ecutfock, at the expense of some loss in accuracy. Must be .gt. ecutwfc. Not implemented for stress calculation and for US-PP and PAW pseudopotentials. + """ + nr1: Optional[int] = None + """ + Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho) + """ + nr2: Optional[int] = None + """ + Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho) + """ + nr3: Optional[int] = None + """ + Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho) + """ + nr1s: Optional[int] = None + """ + Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default ) + """ + nr2s: Optional[int] = None + """ + Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default ) + """ + nr3s: Optional[int] = None + """ + Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default ) + """ + nosym: Optional[bool] = False + nosym_evc: Optional[bool] = False + noinv: Optional[bool] = False + """ + if (.TRUE.) disable the usage of k => -k symmetry (time reversal) in k-point generation + """ + no_t_rev: Optional[bool] = False + """ + if (.TRUE.) disable the usage of magnetic symmetry operations that consist in a rotation + time reversal. + """ + force_symmorphic: Optional[bool] = False + """ + if (.TRUE.) force the symmetry group to be symmorphic by disabling symmetry operations having an associated fractionary translation + """ + use_all_frac: Optional[bool] = False + occupations: Optional[Occupations] = None + one_atom_occupations: Optional[bool] = False + starting_spin_angle: Optional[bool] = False + degauss_cond: Optional[float] = 0 + """ + value of the gaussian spreading (Ry) for brillouin-zone integration in the conduction manifold in a two-chemical potential calculation (twochem=.true.). + """ + nelec_cond: Optional[float] = 0 + """ + Number of electrons placed in the conduction manifold in a two-chemical potential calculation (twochem=.true.). Of the total # of electrons nelec, nelec-nelec_cond will occupy the valence manifold and nelec_cond will be constrained in the conduction manifold. + """ + degauss: Optional[float] = 0 + """ + value of the gaussian spreading (Ry) for brillouin-zone integration in metals. + """ + smearing: Optional[Smearing] = "gaussian" + nspin: Optional[int] = 1 + sic_gamma: Optional[float] = 0 + """ + Strength of the gammaDFT potential. + """ + pol_type: Optional[PolType] = None + """ + Type of polaron in gammaDFT. + """ + sic_energy: Optional[bool] = False + """ + Enable the calculation of the total energy in gammaDFT. When .true., a preliminary calculation is performed to calculate the electron density in the absence of the polaron. When .false., the total energy printed in output should not be considered. For structural relaxations, it is recommended to use .false. to avoid doubling the computational cost. + """ + sci_vb: Optional[float] = 0 + """ + Valence band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted. + """ + sci_cb: Optional[float] = 0 + """ + Conduction band band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted. + """ + noncolin: Optional[bool] = False + """ + if .true. the program will perform a noncollinear calculation. + """ + ecfixed: Optional[float] = 0 + qcutz: Optional[float] = 0 + q2sigma: Optional[float] = 0.1 + input_dft: Optional[str] = None + """ + Exchange-correlation functional: eg 'PBE', 'BLYP' etc See Modules/funct.f90 for allowed values. Overrides the value read from pseudopotential files. Use with care and if you know what you are doing! + """ + ace: Optional[bool] = True + """ + Use Adaptively Compressed Exchange operator as in Lin Lin, J. Chem. Theory Comput. 2016, 12, 2242--2249, doi:10.1021/acs.jctc.6b00092 + """ + exx_fraction: Optional[float] = None + """ + Fraction of EXX for hybrid functional calculations. In the case of input_dft='PBE0', the default value is 0.25, while for input_dft='B3LYP' the exx_fraction default value is 0.20. + """ + screening_parameter: Optional[float] = 0.106 + """ + screening_parameter for HSE like hybrid functionals. + """ + exxdiv_treatment: Optional[ExxdivTreatment] = "gygi-baldereschi" + x_gamma_extrapolation: Optional[bool] = True + """ + Specific for EXX. If .true., extrapolate the G=0 term of the potential + """ + ecutvcut: Optional[float] = None + """ + Reciprocal space cutoff for correcting Coulomb potential divergencies at small q vectors. + """ + nqx1: Optional[int] = 0 + """ + Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points. + """ + nqx2: Optional[int] = None + """ + Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points. + """ + nqx3: Optional[int] = None + """ + Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points. + """ + localization_thr: Optional[float] = 0 + """ + Overlap threshold over which the exchange integral over a pair of localized orbitals is included in the evaluation of EXX operator. Any value greater than 0.0 triggers the SCDM localization and the evaluation on EXX using the localized orbitals. Very small value of the threshold should yield the same result as the default EXX evaluation + """ + Hubbard_occ: Optional[List[List[Union[HubbardOccItem, HubbardOccItem5, float]]]] = None + Hubbard_alpha: Optional[List[float]] = None + Hubbard_beta: Optional[List[float]] = None + starting_ns_eigenvalue: Optional[List[List[List[float]]]] = None + dmft: Optional[bool] = False + """ + If true, nscf calculation will exit in restart mode, scf calculation will restart from there if DMFT updates are provided as hdf5 archive. Scf calculation should be used only with electron_maxstep = 1. + """ + dmft_prefix: Optional[str] = None + """ + prepended to hdf5 archive: dmft_prefix.h5 + """ + ensemble_energies: Optional[bool] = False + """ + If ensemble_energies = .true., an ensemble of xc energies is calculated non-selfconsistently for perturbed exchange-enhancement factors and LDA vs. PBE correlation ratios after each converged electronic ground state calculation. + """ + edir: Optional[int] = None + """ + The direction of the electric field or dipole correction is parallel to the bg(:,edir) reciprocal lattice vector, so the potential is constant in planes defined by FFT grid points; edir = 1, 2 or 3. Used only if tefield is .TRUE. + """ + emaxpos: Optional[float] = 0.5 + """ + Position of the maximum of the saw-like potential along crystal axis edir, within the unit cell (see below), 0 < emaxpos < 1 Used only if tefield is .TRUE. + """ + eopreg: Optional[float] = 0.1 + """ + Zone in the unit cell where the saw-like potential decreases. ( see below, 0 < eopreg < 1 ). Used only if tefield is .TRUE. + """ + eamp: Optional[float] = 0.001 + angle1: Optional[List[float]] = Field(None, max_length=1, min_length=1) + """ + The angle expressed in degrees between the initial magnetization and the z-axis. For noncollinear calculations only; index i runs over the atom types. + """ + angle2: Optional[List[float]] = Field(None, max_length=1, min_length=1) + """ + The angle expressed in degrees between the projection of the initial magnetization on x-y plane and the x-axis. For noncollinear calculations only. + """ + lforcet: Optional[bool] = None + """ + When starting a non collinear calculation using an existing density file from a collinear lsda calculation assumes previous density points in z direction and rotates it in the direction described by angle1 and angle2 variables for atomic type 1 + """ + constrained_magnetization: Optional[ConstrainedMagnetization] = "none" + """ + Used to perform constrained calculations in magnetic systems. + """ + fixed_magnetization: Optional[List[float]] = Field(None, max_length=3, min_length=3) + lambda_: Optional[float] = Field(1, alias="lambda") + """ + parameter used for constrained_magnetization calculations N.B.: if the scf calculation does not converge, try to reduce lambda to obtain convergence, then restart the run with a larger lambda + """ + report: Optional[int] = -1 + """ + determines when atomic magnetic moments are printed on output + """ + lspinorb: Optional[bool] = None + """ + if .TRUE. the noncollinear code can use a pseudopotential with spin-orbit. + """ + assume_isolated: Optional[AssumeIsolated] = "none" + """ + Used to perform calculation assuming the system to be isolated (a molecule or a cluster in a 3D supercell) + """ + esm_bc: Optional[EsmBc] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + esm_w: Optional[float] = 0 + """ + If assume_isolated = 'esm', determines the position offset [in a.u.] of the start of the effective screening region, measured relative to the cell edge. (ESM region begins at z = +/- [L_z/2 + esm_w] ). + """ + esm_efield: Optional[float] = 0 + """ + If assume_isolated = 'esm' and esm_bc = 'bc2', gives the magnitude of the electric field [Ry/a.u.] to be applied between semi-infinite ESM electrodes. + """ + esm_nfit: Optional[int] = 4 + """ + If assume_isolated = 'esm', gives the number of z-grid points for the polynomial fit along the cell edge. + """ + lgcscf: Optional[bool] = False + """ + If .TRUE. perform a constant bias potential (constant-mu) calculation with Grand-Canonical SCF. + """ + gcscf_mu: Optional[float] = None + """ + The target Fermi energy (eV) of GC-SCF. One can start with appropriate total charge of the system by giving tot_charge + """ + gcscf_conv_thr: Optional[float] = 0.01 + """ + Convergence threshold of Fermi energy (eV) for GC-SCF. + """ + gcscf_beta: Optional[float] = 0.05 + """ + Mixing factor for GC-SCF. Larger values are recommended, if systems with small DOS on Fermi surface as graphite. + """ + vdw_corr: Optional[VdwCorr] = "none" + """ + Type of Van der Waals correction + """ + london: Optional[bool] = False + """ + OBSOLESCENT, same as vdw_corr='DFT-D' + """ + london_s6: Optional[float] = 0.75 + """ + global scaling parameter for DFT-D. Default is good for PBE. + """ + london_c6: Optional[float] = None + """ + atomic C6 coefficient of each atom type + """ + london_rvdw: Optional[float] = None + """ + atomic vdw radii of each atom type + """ + london_rcut: Optional[float] = 200 + """ + cutoff radius (a.u.) for dispersion interactions + """ + dftd3_version: Optional[conint(ge=2, le=6)] = 3 + """ + Version of Grimme implementation of Grimme-D3 + """ + dftd3_threebody: Optional[bool] = True + """ + Turn three-body terms in Grimme-D3 on. If .false. two-body contributions only are computed, using two-body parameters of Grimme-D3. If dftd3_version=2, three-body contribution is always disabled. + """ + ts_vdw_econv_thr: Optional[float] = 1e-06 + """ + Optional: controls the convergence of the vdW energy (and forces). The default value is a safe choice, likely too safe, but you do not gain much in increasing it + """ + ts_vdw_isolated: Optional[bool] = False + """ + Optional: set it to .TRUE. when computing the Tkatchenko-Scheffler vdW energy or the Many-Body dispersion (MBD) energy for an isolated (non-periodic) system. + """ + xdm: Optional[bool] = False + """ + OBSOLESCENT, same as vdw_corr='xdm' + """ + xdm_a1: Optional[float] = 0.6836 + """ + Damping function parameter a1 (adimensional) + """ + xdm_a2: Optional[float] = 1.5045 + """ + Damping function parameter a2 (angstrom) + """ + space_group: Optional[int] = 0 + """ + The number of the space group of the crystal, as given in the International Tables of Crystallography A (ITA) + """ + uniqueb: Optional[bool] = False + """ + Used only for monoclinic lattices + """ + origin_choice: Optional[int] = 1 + """ + Used only for space groups that in the ITA allow the use of two different origins + """ + rhombohedral: Optional[bool] = True + """ + Used only for rhombohedral space groups. + """ + zgate: Optional[float] = 0.5 + """ + used only if gate = .TRUE. + """ + relaxz: Optional[bool] = False + """ + used only if gate = .TRUE. + """ + block: Optional[bool] = False + """ + used only if gate = .TRUE. + """ + block_1: Optional[float] = 0.45 + """ + used only if gate = .TRUE. and block = .TRUE. + """ + block_2: Optional[float] = 0.55 + """ + used only if gate = .TRUE. and block = .TRUE. + """ + block_height: Optional[float] = 0.1 + """ + used only if gate = .TRUE. and block = .TRUE. + """ + nextffield: Optional[int] = 0 + """ + Number of activated external ionic force fields. + """ + celldm: Optional[List[float]] = Field(None, max_length=6, min_length=6) + + +class HubbardOccItem6(RootModel[conint(ge=1)]): + root: conint(ge=1) + + +class HubbardOccItem7(RootModel[conint(ge=1, le=3)]): + root: conint(ge=1, le=3) + + +class SystemSchema3(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + ibrav: int + nat: int + """ + number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms) + """ + ntyp: int + """ + number of types of atoms in the unit cell + """ + nbnd: Optional[int] = None + """ + Default: for an insulator, nbnd = number of valence bands (nbnd = # of electrons /2); for a metal, 20% more (minimum 4 more) + """ + nbnd_cond: Optional[int] = None + """ + Default: nbnd_cond = nbnd - # of electrons / 2 in the collinear case; nbnd_cond = nbnd - # of electrons in the noncollinear case. + """ + tot_charge: Optional[float] = 0 + starting_charge: Optional[float] = 0 + """ + starting charge on atomic type 'i', to create starting potential with startingpot = 'atomic'. + """ + tot_magnetization: Optional[float] = -10000 + """ + Total majority spin charge - minority spin charge. Used to impose a specific total electronic magnetization. If unspecified then tot_magnetization variable is ignored and the amount of electronic magnetization is determined during the self-consistent cycle. + """ + starting_magnetization: Optional[List[confloat(ge=-1.0, le=1.0)]] = None + ecutwfc: float + """ + kinetic energy cutoff (Ry) for wavefunctions + """ + ecutrho: Optional[float] = None + """ + Kinetic energy cutoff (Ry) for charge density and potential For norm-conserving pseudopotential you should stick to the default value, you can reduce it by a little but it will introduce noise especially on forces and stress. Default: 4 * ecutwfc + """ + ecutfock: Optional[float] = None + """ + Kinetic energy cutoff (Ry) for the exact exchange operator in EXX type calculations. By default this is the same as ecutrho but in some EXX calculations, a significant speed-up can be obtained by reducing ecutfock, at the expense of some loss in accuracy. Must be .gt. ecutwfc. Not implemented for stress calculation and for US-PP and PAW pseudopotentials. + """ + nr1: Optional[int] = None + """ + Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho) + """ + nr2: Optional[int] = None + """ + Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho) + """ + nr3: Optional[int] = None + """ + Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho) + """ + nr1s: Optional[int] = None + """ + Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default ) + """ + nr2s: Optional[int] = None + """ + Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default ) + """ + nr3s: Optional[int] = None + """ + Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default ) + """ + nosym: Optional[bool] = False + nosym_evc: Optional[bool] = False + noinv: Optional[bool] = False + """ + if (.TRUE.) disable the usage of k => -k symmetry (time reversal) in k-point generation + """ + no_t_rev: Optional[bool] = False + """ + if (.TRUE.) disable the usage of magnetic symmetry operations that consist in a rotation + time reversal. + """ + force_symmorphic: Optional[bool] = False + """ + if (.TRUE.) force the symmetry group to be symmorphic by disabling symmetry operations having an associated fractionary translation + """ + use_all_frac: Optional[bool] = False + occupations: Optional[Occupations] = None + one_atom_occupations: Optional[bool] = False + starting_spin_angle: Optional[bool] = False + degauss_cond: Optional[float] = 0 + """ + value of the gaussian spreading (Ry) for brillouin-zone integration in the conduction manifold in a two-chemical potential calculation (twochem=.true.). + """ + nelec_cond: Optional[float] = 0 + """ + Number of electrons placed in the conduction manifold in a two-chemical potential calculation (twochem=.true.). Of the total # of electrons nelec, nelec-nelec_cond will occupy the valence manifold and nelec_cond will be constrained in the conduction manifold. + """ + degauss: Optional[float] = 0 + """ + value of the gaussian spreading (Ry) for brillouin-zone integration in metals. + """ + smearing: Optional[Smearing] = "gaussian" + nspin: Optional[int] = 1 + sic_gamma: Optional[float] = 0 + """ + Strength of the gammaDFT potential. + """ + pol_type: Optional[PolType] = None + """ + Type of polaron in gammaDFT. + """ + sic_energy: Optional[bool] = False + """ + Enable the calculation of the total energy in gammaDFT. When .true., a preliminary calculation is performed to calculate the electron density in the absence of the polaron. When .false., the total energy printed in output should not be considered. For structural relaxations, it is recommended to use .false. to avoid doubling the computational cost. + """ + sci_vb: Optional[float] = 0 + """ + Valence band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted. + """ + sci_cb: Optional[float] = 0 + """ + Conduction band band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted. + """ + noncolin: Optional[bool] = False + """ + if .true. the program will perform a noncollinear calculation. + """ + ecfixed: Optional[float] = 0 + qcutz: Optional[float] = 0 + q2sigma: Optional[float] = 0.1 + input_dft: Optional[str] = None + """ + Exchange-correlation functional: eg 'PBE', 'BLYP' etc See Modules/funct.f90 for allowed values. Overrides the value read from pseudopotential files. Use with care and if you know what you are doing! + """ + ace: Optional[bool] = True + """ + Use Adaptively Compressed Exchange operator as in Lin Lin, J. Chem. Theory Comput. 2016, 12, 2242--2249, doi:10.1021/acs.jctc.6b00092 + """ + exx_fraction: Optional[float] = None + """ + Fraction of EXX for hybrid functional calculations. In the case of input_dft='PBE0', the default value is 0.25, while for input_dft='B3LYP' the exx_fraction default value is 0.20. + """ + screening_parameter: Optional[float] = 0.106 + """ + screening_parameter for HSE like hybrid functionals. + """ + exxdiv_treatment: Optional[ExxdivTreatment] = "gygi-baldereschi" + x_gamma_extrapolation: Optional[bool] = True + """ + Specific for EXX. If .true., extrapolate the G=0 term of the potential + """ + ecutvcut: Optional[float] = None + """ + Reciprocal space cutoff for correcting Coulomb potential divergencies at small q vectors. + """ + nqx1: Optional[int] = 0 + """ + Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points. + """ + nqx2: Optional[int] = None + """ + Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points. + """ + nqx3: Optional[int] = None + """ + Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points. + """ + localization_thr: Optional[float] = 0 + """ + Overlap threshold over which the exchange integral over a pair of localized orbitals is included in the evaluation of EXX operator. Any value greater than 0.0 triggers the SCDM localization and the evaluation on EXX using the localized orbitals. Very small value of the threshold should yield the same result as the default EXX evaluation + """ + Hubbard_occ: Optional[List[List[Union[HubbardOccItem6, HubbardOccItem7, float]]]] = None + Hubbard_alpha: Optional[List[float]] = None + Hubbard_beta: Optional[List[float]] = None + starting_ns_eigenvalue: Optional[List[List[List[float]]]] = None + dmft: Optional[bool] = False + """ + If true, nscf calculation will exit in restart mode, scf calculation will restart from there if DMFT updates are provided as hdf5 archive. Scf calculation should be used only with electron_maxstep = 1. + """ + dmft_prefix: Optional[str] = None + """ + prepended to hdf5 archive: dmft_prefix.h5 + """ + ensemble_energies: Optional[bool] = False + """ + If ensemble_energies = .true., an ensemble of xc energies is calculated non-selfconsistently for perturbed exchange-enhancement factors and LDA vs. PBE correlation ratios after each converged electronic ground state calculation. + """ + edir: Optional[int] = None + """ + The direction of the electric field or dipole correction is parallel to the bg(:,edir) reciprocal lattice vector, so the potential is constant in planes defined by FFT grid points; edir = 1, 2 or 3. Used only if tefield is .TRUE. + """ + emaxpos: Optional[float] = 0.5 + """ + Position of the maximum of the saw-like potential along crystal axis edir, within the unit cell (see below), 0 < emaxpos < 1 Used only if tefield is .TRUE. + """ + eopreg: Optional[float] = 0.1 + """ + Zone in the unit cell where the saw-like potential decreases. ( see below, 0 < eopreg < 1 ). Used only if tefield is .TRUE. + """ + eamp: Optional[float] = 0.001 + angle1: Optional[List[float]] = Field(None, max_length=1, min_length=1) + """ + The angle expressed in degrees between the initial magnetization and the z-axis. For noncollinear calculations only; index i runs over the atom types. + """ + angle2: Optional[List[float]] = Field(None, max_length=1, min_length=1) + """ + The angle expressed in degrees between the projection of the initial magnetization on x-y plane and the x-axis. For noncollinear calculations only. + """ + lforcet: Optional[bool] = None + """ + When starting a non collinear calculation using an existing density file from a collinear lsda calculation assumes previous density points in z direction and rotates it in the direction described by angle1 and angle2 variables for atomic type 1 + """ + constrained_magnetization: Optional[ConstrainedMagnetization] = "none" + """ + Used to perform constrained calculations in magnetic systems. + """ + fixed_magnetization: Optional[List[float]] = Field(None, max_length=3, min_length=3) + lambda_: Optional[float] = Field(1, alias="lambda") + """ + parameter used for constrained_magnetization calculations N.B.: if the scf calculation does not converge, try to reduce lambda to obtain convergence, then restart the run with a larger lambda + """ + report: Optional[int] = -1 + """ + determines when atomic magnetic moments are printed on output + """ + lspinorb: Optional[bool] = None + """ + if .TRUE. the noncollinear code can use a pseudopotential with spin-orbit. + """ + assume_isolated: Optional[AssumeIsolated] = "none" + """ + Used to perform calculation assuming the system to be isolated (a molecule or a cluster in a 3D supercell) + """ + esm_bc: Optional[EsmBc] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + esm_w: Optional[float] = 0 + """ + If assume_isolated = 'esm', determines the position offset [in a.u.] of the start of the effective screening region, measured relative to the cell edge. (ESM region begins at z = +/- [L_z/2 + esm_w] ). + """ + esm_efield: Optional[float] = 0 + """ + If assume_isolated = 'esm' and esm_bc = 'bc2', gives the magnitude of the electric field [Ry/a.u.] to be applied between semi-infinite ESM electrodes. + """ + esm_nfit: Optional[int] = 4 + """ + If assume_isolated = 'esm', gives the number of z-grid points for the polynomial fit along the cell edge. + """ + lgcscf: Optional[bool] = False + """ + If .TRUE. perform a constant bias potential (constant-mu) calculation with Grand-Canonical SCF. + """ + gcscf_mu: Optional[float] = None + """ + The target Fermi energy (eV) of GC-SCF. One can start with appropriate total charge of the system by giving tot_charge + """ + gcscf_conv_thr: Optional[float] = 0.01 + """ + Convergence threshold of Fermi energy (eV) for GC-SCF. + """ + gcscf_beta: Optional[float] = 0.05 + """ + Mixing factor for GC-SCF. Larger values are recommended, if systems with small DOS on Fermi surface as graphite. + """ + vdw_corr: Optional[VdwCorr] = "none" + """ + Type of Van der Waals correction + """ + london: Optional[bool] = False + """ + OBSOLESCENT, same as vdw_corr='DFT-D' + """ + london_s6: Optional[float] = 0.75 + """ + global scaling parameter for DFT-D. Default is good for PBE. + """ + london_c6: Optional[float] = None + """ + atomic C6 coefficient of each atom type + """ + london_rvdw: Optional[float] = None + """ + atomic vdw radii of each atom type + """ + london_rcut: Optional[float] = 200 + """ + cutoff radius (a.u.) for dispersion interactions + """ + dftd3_version: Optional[conint(ge=2, le=6)] = 3 + """ + Version of Grimme implementation of Grimme-D3 + """ + dftd3_threebody: Optional[bool] = True + """ + Turn three-body terms in Grimme-D3 on. If .false. two-body contributions only are computed, using two-body parameters of Grimme-D3. If dftd3_version=2, three-body contribution is always disabled. + """ + ts_vdw_econv_thr: Optional[float] = 1e-06 + """ + Optional: controls the convergence of the vdW energy (and forces). The default value is a safe choice, likely too safe, but you do not gain much in increasing it + """ + ts_vdw_isolated: Optional[bool] = False + """ + Optional: set it to .TRUE. when computing the Tkatchenko-Scheffler vdW energy or the Many-Body dispersion (MBD) energy for an isolated (non-periodic) system. + """ + xdm: Optional[bool] = False + """ + OBSOLESCENT, same as vdw_corr='xdm' + """ + xdm_a1: Optional[float] = 0.6836 + """ + Damping function parameter a1 (adimensional) + """ + xdm_a2: Optional[float] = 1.5045 + """ + Damping function parameter a2 (angstrom) + """ + space_group: Optional[int] = 0 + """ + The number of the space group of the crystal, as given in the International Tables of Crystallography A (ITA) + """ + uniqueb: Optional[bool] = False + """ + Used only for monoclinic lattices + """ + origin_choice: Optional[int] = 1 + """ + Used only for space groups that in the ITA allow the use of two different origins + """ + rhombohedral: Optional[bool] = True + """ + Used only for rhombohedral space groups. + """ + zgate: Optional[float] = 0.5 + """ + used only if gate = .TRUE. + """ + relaxz: Optional[bool] = False + """ + used only if gate = .TRUE. + """ + block: Optional[bool] = False + """ + used only if gate = .TRUE. + """ + block_1: Optional[float] = 0.45 + """ + used only if gate = .TRUE. and block = .TRUE. + """ + block_2: Optional[float] = 0.55 + """ + used only if gate = .TRUE. and block = .TRUE. + """ + block_height: Optional[float] = 0.1 + """ + used only if gate = .TRUE. and block = .TRUE. + """ + nextffield: Optional[int] = 0 + """ + Number of activated external ionic force fields. + """ + A: Optional[float] = None + B: Optional[float] = None + C: Optional[float] = None + cosAB: Optional[float] = None + cosAC: Optional[float] = None + cosBC: Optional[float] = None + + +class ESSE(RootModel[Union[SystemSchema, SystemSchema3]]): + root: Union[SystemSchema, SystemSchema3] = Field(..., title="system schema") diff --git a/dist/py/apse/file/applications/espresso/7.2/pw_x.py b/dist/py/apse/file/applications/espresso/7.2/pw_x.py new file mode 100644 index 000000000..e6cc89b63 --- /dev/null +++ b/dist/py/apse/file/applications/espresso/7.2/pw_x.py @@ -0,0 +1,1990 @@ +# generated by datamodel-codegen: +# filename: apse/file/applications/espresso/7.2/pw.x.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, RootModel, confloat, conint + + +class Calculation(Enum): + scf = "scf" + nscf = "nscf" + bands = "bands" + relax = "relax" + md = "md" + vc_relax = "vc-relax" + vc_md = "vc-md" + + +class Verbosity(Enum): + high = "high" + low = "low" + debug = "debug" + medium = "medium" + minimal = "minimal" + default = "default" + + +class RestartMode(Enum): + from_scratch = "from_scratch" + restart = "restart" + + +class DiskIo(Enum): + high = "high" + medium = "medium" + low = "low" + nowf = "nowf" + none = "none" + + +class ControlSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + calculation: Optional[Calculation] = "scf" + """ + A string describing the task to be performed + """ + title: Optional[str] = "" + """ + reprinted on output. + """ + verbosity: Optional[Verbosity] = "low" + """ + Currently two verbosity levels are implemented: high, low. 'debug' and 'medium' have the same effect as 'high'; 'default' and 'minimal' as 'low' + """ + restart_mode: Optional[RestartMode] = "from_scratch" + wf_collect: Optional[bool] = None + """ + OBSOLETE - NO LONGER IMPLEMENTED + """ + nstep: Optional[float] = 1 + """ + Default: 1 if calculation == 'scf', 'nscf', 'bands'; 50 for the other cases; Number of molecular-dynamics or structural optimization steps performed in this run. If set to 0, the code performs a quick "dry run", stopping just after initialization. This is useful to check for input correctness and to have the summary printed. NOTE: in MD calculations, the code will perform "nstep" steps even if restarting from a previously interrupted calculation. + """ + iprint: Optional[float] = None + """ + band energies are written every iprint iterations + """ + tstress: Optional[bool] = False + """ + calculate stress. It is set to .TRUE. automatically if calculation == 'vc-md' or 'vc-relax' + """ + tprnfor: Optional[bool] = None + """ + calculate forces. It is set to .TRUE. automatically if calculation == 'relax','md','vc-md' + """ + dt: Optional[float] = 20 + """ + time step for molecular dynamics, in Rydberg atomic units (1 a.u.=4.8378 * 10^-17 s : beware, the CP code uses Hartree atomic units, half that much!!!) + """ + outdir: Optional[str] = None + """ + input, temporary, output files are found in this directory, see also wfcdir + """ + wfcdir: Optional[str] = None + """ + This directory specifies where to store files generated by each processor (*.wfc{N}, *.igk{N}, etc.). Useful for machines without a parallel file system: set wfcdir to a local file system, while outdir should be a parallel or network file system, visible to all processors. Beware: in order to restart from interrupted runs, or to perform further calculations using the produced data files, you may need to copy files to outdir. Works only for pw.x. + """ + prefix: Optional[str] = "pwscf" + """ + prepended to input/output filenames: prefix.wfc, prefix.rho, etc. + """ + lkpoint_dir: Optional[bool] = None + """ + OBSOLETE - NO LONGER IMPLEMENTED + """ + max_seconds: Optional[float] = 10000000 + """ + Jobs stops after max_seconds CPU time. Use this option in conjunction with option restart_mode if you need to split a job too long to complete into shorter jobs that fit into your batch queues. + """ + etot_conv_thr: Optional[float] = 0.0001 + """ + Convergence threshold on total energy (a.u) for ionic minimization: the convergence criterion is satisfied when the total energy changes less than etot_conv_thr between two consecutive scf steps. Note that etot_conv_thr is extensive, like the total energy. See also forc_conv_thr - both criteria must be satisfied + """ + forc_conv_thr: Optional[float] = 0.001 + """ + Convergence threshold on forces (a.u) for ionic minimization: the convergence criterion is satisfied when all components of all forces are smaller than forc_conv_thr. See also etot_conv_thr - both criteria must be satisfied + """ + disk_io: Optional[DiskIo] = None + """ + Specifies the amount of disk I/O activity: (only for binary files and xml data file in data directory; other files printed at each molecular dynamics / structural optimization step are not controlled by this option ) + """ + pseudo_dir: Optional[str] = None + """ + directory containing pseudopotential files. Default: value of the $ESPRESSO_PSEUDO environment variable if set; '$HOME/espresso/pseudo/' otherwise + """ + tefield: Optional[bool] = False + """ + If .TRUE. a saw-like potential simulating an electric field is added to the bare ionic potential. See variables edir, eamp, emaxpos, eopreg for the form and size of the added potential. + """ + dipfield: Optional[bool] = False + """ + If .TRUE. and tefield==.TRUE. a dipole correction is also added to the bare ionic potential - implements the recipe of L. Bengtsson, PRB 59, 12301 (1999). See variables edir, emaxpos, eopreg for the form of the correction. Must be used ONLY in a slab geometry, for surface calculations, with the discontinuity FALLING IN THE EMPTY SPACE. + """ + lelfield: Optional[bool] = False + """ + If .TRUE. a homogeneous finite electric field described through the modern theory of the polarization is applied. This is different from tefield == .true. ! + """ + nberrycyc: Optional[int] = 1 + """ + In the case of a finite electric field ( lelfield == .TRUE. ) it defines the number of iterations for converging the wavefunctions in the electric field Hamiltonian, for each external iteration on the charge density + """ + lorbm: Optional[bool] = False + """ + If .TRUE. perform orbital magnetization calculation. + """ + lberry: Optional[bool] = False + """ + If .TRUE. perform a Berry phase calculation. See the header of PW/src/bp_c_phase.f90 for documentation + """ + gdir: Optional[float] = None + """ + For Berry phase calculation: direction of the k-point strings in reciprocal space. Allowed values: 1, 2, 3 1=first, 2=second, 3=third reciprocal lattice vector For calculations with finite electric fields (lelfield==.true.) "gdir" is the direction of the field. + """ + nppstr: Optional[float] = None + """ + For Berry phase calculation: number of k-points to be calculated along each symmetry-reduced string. The same for calculation with finite electric fields (lelfield==.true.). + """ + gate: Optional[bool] = False + """ + In the case of charged cells (tot_charge .ne. 0) setting gate = .TRUE. represents the counter charge (i.e. -tot_charge) not by a homogeneous background charge but with a charged plate, which is placed at zgate (see below). Details of the gate potential can be found in T. Brumme, M. Calandra, F. Mauri; PRB 89, 245406 (2014). Note, that in systems which are not symmetric with respect to the plate, one needs to enable the dipole correction! (dipfield=.true.). Currently, symmetry can be used with gate=.true. but carefully check that no symmetry is included which maps z to -z even if in principle one could still use them for symmetric systems (i.e. no dipole correction). For nosym=.false. verbosity is set to 'high'. Note: this option was called "monopole" in v6.0 and 6.1 of pw.x + """ + twochem: Optional[bool] = False + """ + IF .TRUE. , a two chemical potential calculation for the simulation of photoexcited systems is performed, constraining a fraction of the electrons in the conduction manifold. + """ + lfcp: Optional[bool] = False + """ + If .TRUE. perform a constant bias potential (constant-mu) calculation for a system with ESM method. See the header of PW/src/fcp_module.f90 for documentation. To perform the calculation, you must set a namelist FCP. + """ + trism: Optional[bool] = False + """ + If .TRUE. perform a 3D-RISM-SCF calculation [for details see H.Sato et al., JCP 112, 9463 (2000), doi:10.1063/1.481564]. The solvent's distributions are calculated by 3D-RISM, though solute is treated as SCF. The charge density and the atomic positions are optimized, simultaneously with the solvents. To perform the calculation, you must set a namelist RISM and a card SOLVENTS. If assume_isolated = 'esm' and esm_bc = 'bc1', Laue-RISM is calculated instead of 3D-RISM and coupled with ESM method (i.e. ESM-RISM). [for details see S.Nishihara and M.Otani, PRB 96, 115429 (2017)]. The default of mixing_beta is 0.2 for both 3D-RISM and Laue-RISM. For structural relaxation with BFGS, ignore_wolfe is always .TRUE. . + """ + + +class Occupations(Enum): + smearing = "smearing" + tetrahedra = "tetrahedra" + tetrahedra_lin = "tetrahedra_lin" + tetrahedra_opt = "tetrahedra_opt" + fixed = "fixed" + from_input = "from_input" + + +class Smearing(Enum): + gaussian = "gaussian" + gauss = "gauss" + methfessel_paxton = "methfessel-paxton" + m_p = "m-p" + mp = "mp" + marzari_vanderbilt = "marzari-vanderbilt" + cold = "cold" + m_v = "m-v" + mv = "mv" + fermi_dirac = "fermi-dirac" + f_d = "f-d" + fd = "fd" + + +class PolType(Enum): + e = "e" + h = "h" + + +class ExxdivTreatment(Enum): + gygi_baldereschi = "gygi-baldereschi" + vcut_spherical = "vcut_spherical" + vcut_ws = "vcut_ws" + none = "none" + + +class HubbardOccItem(RootModel[conint(ge=1)]): + root: conint(ge=1) + + +class HubbardOccItem1(RootModel[conint(ge=1, le=3)]): + root: conint(ge=1, le=3) + + +class ConstrainedMagnetization(Enum): + none = "none" + total = "total" + atomic = "atomic" + total_direction = "total direction" + atomic_direction = "atomic direction" + + +class AssumeIsolated(Enum): + none = "none" + makov_payne = "makov-payne" + m_p = "m-p" + mp = "mp" + martyna_tuckerman = "martyna-tuckerman" + m_t = "m-t" + mt = "mt" + esm = "esm" + field_2D = "2D" + + +class EsmBc(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class VdwCorr(Enum): + none = "none" + grimme_d2 = "grimme-d2" + Grimme_D2 = "Grimme-D2" + DFT_D = "DFT-D" + dft_d = "dft-d" + grimme_d3 = "grimme-d3" + Grimme_D3 = "Grimme-D3" + DFT_D3 = "DFT-D3" + dft_d3 = "dft-d3" + TS = "TS" + ts = "ts" + ts_vdw = "ts-vdw" + ts_vdW = "ts-vdW" + tkatchenko_scheffler = "tkatchenko-scheffler" + MBD = "MBD" + mbd = "mbd" + many_body_dispersion = "many-body-dispersion" + mbd_vdw = "mbd_vdw" + XDM = "XDM" + xdm = "xdm" + + +class SystemSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + ibrav: int + nat: int + """ + number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms) + """ + ntyp: int + """ + number of types of atoms in the unit cell + """ + nbnd: Optional[int] = None + """ + Default: for an insulator, nbnd = number of valence bands (nbnd = # of electrons /2); for a metal, 20% more (minimum 4 more) + """ + nbnd_cond: Optional[int] = None + """ + Default: nbnd_cond = nbnd - # of electrons / 2 in the collinear case; nbnd_cond = nbnd - # of electrons in the noncollinear case. + """ + tot_charge: Optional[float] = 0 + starting_charge: Optional[float] = 0 + """ + starting charge on atomic type 'i', to create starting potential with startingpot = 'atomic'. + """ + tot_magnetization: Optional[float] = -10000 + """ + Total majority spin charge - minority spin charge. Used to impose a specific total electronic magnetization. If unspecified then tot_magnetization variable is ignored and the amount of electronic magnetization is determined during the self-consistent cycle. + """ + starting_magnetization: Optional[List[confloat(ge=-1.0, le=1.0)]] = None + ecutwfc: float + """ + kinetic energy cutoff (Ry) for wavefunctions + """ + ecutrho: Optional[float] = None + """ + Kinetic energy cutoff (Ry) for charge density and potential For norm-conserving pseudopotential you should stick to the default value, you can reduce it by a little but it will introduce noise especially on forces and stress. Default: 4 * ecutwfc + """ + ecutfock: Optional[float] = None + """ + Kinetic energy cutoff (Ry) for the exact exchange operator in EXX type calculations. By default this is the same as ecutrho but in some EXX calculations, a significant speed-up can be obtained by reducing ecutfock, at the expense of some loss in accuracy. Must be .gt. ecutwfc. Not implemented for stress calculation and for US-PP and PAW pseudopotentials. + """ + nr1: Optional[int] = None + """ + Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho) + """ + nr2: Optional[int] = None + """ + Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho) + """ + nr3: Optional[int] = None + """ + Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho) + """ + nr1s: Optional[int] = None + """ + Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default ) + """ + nr2s: Optional[int] = None + """ + Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default ) + """ + nr3s: Optional[int] = None + """ + Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default ) + """ + nosym: Optional[bool] = False + nosym_evc: Optional[bool] = False + noinv: Optional[bool] = False + """ + if (.TRUE.) disable the usage of k => -k symmetry (time reversal) in k-point generation + """ + no_t_rev: Optional[bool] = False + """ + if (.TRUE.) disable the usage of magnetic symmetry operations that consist in a rotation + time reversal. + """ + force_symmorphic: Optional[bool] = False + """ + if (.TRUE.) force the symmetry group to be symmorphic by disabling symmetry operations having an associated fractionary translation + """ + use_all_frac: Optional[bool] = False + occupations: Optional[Occupations] = None + one_atom_occupations: Optional[bool] = False + starting_spin_angle: Optional[bool] = False + degauss_cond: Optional[float] = 0 + """ + value of the gaussian spreading (Ry) for brillouin-zone integration in the conduction manifold in a two-chemical potential calculation (twochem=.true.). + """ + nelec_cond: Optional[float] = 0 + """ + Number of electrons placed in the conduction manifold in a two-chemical potential calculation (twochem=.true.). Of the total # of electrons nelec, nelec-nelec_cond will occupy the valence manifold and nelec_cond will be constrained in the conduction manifold. + """ + degauss: Optional[float] = 0 + """ + value of the gaussian spreading (Ry) for brillouin-zone integration in metals. + """ + smearing: Optional[Smearing] = "gaussian" + nspin: Optional[int] = 1 + sic_gamma: Optional[float] = 0 + """ + Strength of the gammaDFT potential. + """ + pol_type: Optional[PolType] = None + """ + Type of polaron in gammaDFT. + """ + sic_energy: Optional[bool] = False + """ + Enable the calculation of the total energy in gammaDFT. When .true., a preliminary calculation is performed to calculate the electron density in the absence of the polaron. When .false., the total energy printed in output should not be considered. For structural relaxations, it is recommended to use .false. to avoid doubling the computational cost. + """ + sci_vb: Optional[float] = 0 + """ + Valence band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted. + """ + sci_cb: Optional[float] = 0 + """ + Conduction band band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted. + """ + noncolin: Optional[bool] = False + """ + if .true. the program will perform a noncollinear calculation. + """ + ecfixed: Optional[float] = 0 + qcutz: Optional[float] = 0 + q2sigma: Optional[float] = 0.1 + input_dft: Optional[str] = None + """ + Exchange-correlation functional: eg 'PBE', 'BLYP' etc See Modules/funct.f90 for allowed values. Overrides the value read from pseudopotential files. Use with care and if you know what you are doing! + """ + ace: Optional[bool] = True + """ + Use Adaptively Compressed Exchange operator as in Lin Lin, J. Chem. Theory Comput. 2016, 12, 2242--2249, doi:10.1021/acs.jctc.6b00092 + """ + exx_fraction: Optional[float] = None + """ + Fraction of EXX for hybrid functional calculations. In the case of input_dft='PBE0', the default value is 0.25, while for input_dft='B3LYP' the exx_fraction default value is 0.20. + """ + screening_parameter: Optional[float] = 0.106 + """ + screening_parameter for HSE like hybrid functionals. + """ + exxdiv_treatment: Optional[ExxdivTreatment] = "gygi-baldereschi" + x_gamma_extrapolation: Optional[bool] = True + """ + Specific for EXX. If .true., extrapolate the G=0 term of the potential + """ + ecutvcut: Optional[float] = None + """ + Reciprocal space cutoff for correcting Coulomb potential divergencies at small q vectors. + """ + nqx1: Optional[int] = 0 + """ + Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points. + """ + nqx2: Optional[int] = None + """ + Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points. + """ + nqx3: Optional[int] = None + """ + Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points. + """ + localization_thr: Optional[float] = 0 + """ + Overlap threshold over which the exchange integral over a pair of localized orbitals is included in the evaluation of EXX operator. Any value greater than 0.0 triggers the SCDM localization and the evaluation on EXX using the localized orbitals. Very small value of the threshold should yield the same result as the default EXX evaluation + """ + Hubbard_occ: Optional[List[List[Union[HubbardOccItem, HubbardOccItem1, float]]]] = None + Hubbard_alpha: Optional[List[float]] = None + Hubbard_beta: Optional[List[float]] = None + starting_ns_eigenvalue: Optional[List[List[List[float]]]] = None + dmft: Optional[bool] = False + """ + If true, nscf calculation will exit in restart mode, scf calculation will restart from there if DMFT updates are provided as hdf5 archive. Scf calculation should be used only with electron_maxstep = 1. + """ + dmft_prefix: Optional[str] = None + """ + prepended to hdf5 archive: dmft_prefix.h5 + """ + ensemble_energies: Optional[bool] = False + """ + If ensemble_energies = .true., an ensemble of xc energies is calculated non-selfconsistently for perturbed exchange-enhancement factors and LDA vs. PBE correlation ratios after each converged electronic ground state calculation. + """ + edir: Optional[int] = None + """ + The direction of the electric field or dipole correction is parallel to the bg(:,edir) reciprocal lattice vector, so the potential is constant in planes defined by FFT grid points; edir = 1, 2 or 3. Used only if tefield is .TRUE. + """ + emaxpos: Optional[float] = 0.5 + """ + Position of the maximum of the saw-like potential along crystal axis edir, within the unit cell (see below), 0 < emaxpos < 1 Used only if tefield is .TRUE. + """ + eopreg: Optional[float] = 0.1 + """ + Zone in the unit cell where the saw-like potential decreases. ( see below, 0 < eopreg < 1 ). Used only if tefield is .TRUE. + """ + eamp: Optional[float] = 0.001 + angle1: Optional[List[float]] = Field(None, max_length=1, min_length=1) + """ + The angle expressed in degrees between the initial magnetization and the z-axis. For noncollinear calculations only; index i runs over the atom types. + """ + angle2: Optional[List[float]] = Field(None, max_length=1, min_length=1) + """ + The angle expressed in degrees between the projection of the initial magnetization on x-y plane and the x-axis. For noncollinear calculations only. + """ + lforcet: Optional[bool] = None + """ + When starting a non collinear calculation using an existing density file from a collinear lsda calculation assumes previous density points in z direction and rotates it in the direction described by angle1 and angle2 variables for atomic type 1 + """ + constrained_magnetization: Optional[ConstrainedMagnetization] = "none" + """ + Used to perform constrained calculations in magnetic systems. + """ + fixed_magnetization: Optional[List[float]] = Field(None, max_length=3, min_length=3) + lambda_: Optional[float] = Field(1, alias="lambda") + """ + parameter used for constrained_magnetization calculations N.B.: if the scf calculation does not converge, try to reduce lambda to obtain convergence, then restart the run with a larger lambda + """ + report: Optional[int] = -1 + """ + determines when atomic magnetic moments are printed on output + """ + lspinorb: Optional[bool] = None + """ + if .TRUE. the noncollinear code can use a pseudopotential with spin-orbit. + """ + assume_isolated: Optional[AssumeIsolated] = "none" + """ + Used to perform calculation assuming the system to be isolated (a molecule or a cluster in a 3D supercell) + """ + esm_bc: Optional[EsmBc] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + esm_w: Optional[float] = 0 + """ + If assume_isolated = 'esm', determines the position offset [in a.u.] of the start of the effective screening region, measured relative to the cell edge. (ESM region begins at z = +/- [L_z/2 + esm_w] ). + """ + esm_efield: Optional[float] = 0 + """ + If assume_isolated = 'esm' and esm_bc = 'bc2', gives the magnitude of the electric field [Ry/a.u.] to be applied between semi-infinite ESM electrodes. + """ + esm_nfit: Optional[int] = 4 + """ + If assume_isolated = 'esm', gives the number of z-grid points for the polynomial fit along the cell edge. + """ + lgcscf: Optional[bool] = False + """ + If .TRUE. perform a constant bias potential (constant-mu) calculation with Grand-Canonical SCF. + """ + gcscf_mu: Optional[float] = None + """ + The target Fermi energy (eV) of GC-SCF. One can start with appropriate total charge of the system by giving tot_charge + """ + gcscf_conv_thr: Optional[float] = 0.01 + """ + Convergence threshold of Fermi energy (eV) for GC-SCF. + """ + gcscf_beta: Optional[float] = 0.05 + """ + Mixing factor for GC-SCF. Larger values are recommended, if systems with small DOS on Fermi surface as graphite. + """ + vdw_corr: Optional[VdwCorr] = "none" + """ + Type of Van der Waals correction + """ + london: Optional[bool] = False + """ + OBSOLESCENT, same as vdw_corr='DFT-D' + """ + london_s6: Optional[float] = 0.75 + """ + global scaling parameter for DFT-D. Default is good for PBE. + """ + london_c6: Optional[float] = None + """ + atomic C6 coefficient of each atom type + """ + london_rvdw: Optional[float] = None + """ + atomic vdw radii of each atom type + """ + london_rcut: Optional[float] = 200 + """ + cutoff radius (a.u.) for dispersion interactions + """ + dftd3_version: Optional[conint(ge=2, le=6)] = 3 + """ + Version of Grimme implementation of Grimme-D3 + """ + dftd3_threebody: Optional[bool] = True + """ + Turn three-body terms in Grimme-D3 on. If .false. two-body contributions only are computed, using two-body parameters of Grimme-D3. If dftd3_version=2, three-body contribution is always disabled. + """ + ts_vdw_econv_thr: Optional[float] = 1e-06 + """ + Optional: controls the convergence of the vdW energy (and forces). The default value is a safe choice, likely too safe, but you do not gain much in increasing it + """ + ts_vdw_isolated: Optional[bool] = False + """ + Optional: set it to .TRUE. when computing the Tkatchenko-Scheffler vdW energy or the Many-Body dispersion (MBD) energy for an isolated (non-periodic) system. + """ + xdm: Optional[bool] = False + """ + OBSOLESCENT, same as vdw_corr='xdm' + """ + xdm_a1: Optional[float] = 0.6836 + """ + Damping function parameter a1 (adimensional) + """ + xdm_a2: Optional[float] = 1.5045 + """ + Damping function parameter a2 (angstrom) + """ + space_group: Optional[int] = 0 + """ + The number of the space group of the crystal, as given in the International Tables of Crystallography A (ITA) + """ + uniqueb: Optional[bool] = False + """ + Used only for monoclinic lattices + """ + origin_choice: Optional[int] = 1 + """ + Used only for space groups that in the ITA allow the use of two different origins + """ + rhombohedral: Optional[bool] = True + """ + Used only for rhombohedral space groups. + """ + zgate: Optional[float] = 0.5 + """ + used only if gate = .TRUE. + """ + relaxz: Optional[bool] = False + """ + used only if gate = .TRUE. + """ + block: Optional[bool] = False + """ + used only if gate = .TRUE. + """ + block_1: Optional[float] = 0.45 + """ + used only if gate = .TRUE. and block = .TRUE. + """ + block_2: Optional[float] = 0.55 + """ + used only if gate = .TRUE. and block = .TRUE. + """ + block_height: Optional[float] = 0.1 + """ + used only if gate = .TRUE. and block = .TRUE. + """ + nextffield: Optional[int] = 0 + """ + Number of activated external ionic force fields. + """ + celldm: Optional[List[float]] = Field(None, max_length=6, min_length=6) + + +class HubbardOccItem2(RootModel[conint(ge=1)]): + root: conint(ge=1) + + +class HubbardOccItem3(RootModel[conint(ge=1, le=3)]): + root: conint(ge=1, le=3) + + +class SystemSchema1(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + ibrav: int + nat: int + """ + number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms) + """ + ntyp: int + """ + number of types of atoms in the unit cell + """ + nbnd: Optional[int] = None + """ + Default: for an insulator, nbnd = number of valence bands (nbnd = # of electrons /2); for a metal, 20% more (minimum 4 more) + """ + nbnd_cond: Optional[int] = None + """ + Default: nbnd_cond = nbnd - # of electrons / 2 in the collinear case; nbnd_cond = nbnd - # of electrons in the noncollinear case. + """ + tot_charge: Optional[float] = 0 + starting_charge: Optional[float] = 0 + """ + starting charge on atomic type 'i', to create starting potential with startingpot = 'atomic'. + """ + tot_magnetization: Optional[float] = -10000 + """ + Total majority spin charge - minority spin charge. Used to impose a specific total electronic magnetization. If unspecified then tot_magnetization variable is ignored and the amount of electronic magnetization is determined during the self-consistent cycle. + """ + starting_magnetization: Optional[List[confloat(ge=-1.0, le=1.0)]] = None + ecutwfc: float + """ + kinetic energy cutoff (Ry) for wavefunctions + """ + ecutrho: Optional[float] = None + """ + Kinetic energy cutoff (Ry) for charge density and potential For norm-conserving pseudopotential you should stick to the default value, you can reduce it by a little but it will introduce noise especially on forces and stress. Default: 4 * ecutwfc + """ + ecutfock: Optional[float] = None + """ + Kinetic energy cutoff (Ry) for the exact exchange operator in EXX type calculations. By default this is the same as ecutrho but in some EXX calculations, a significant speed-up can be obtained by reducing ecutfock, at the expense of some loss in accuracy. Must be .gt. ecutwfc. Not implemented for stress calculation and for US-PP and PAW pseudopotentials. + """ + nr1: Optional[int] = None + """ + Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho) + """ + nr2: Optional[int] = None + """ + Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho) + """ + nr3: Optional[int] = None + """ + Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho) + """ + nr1s: Optional[int] = None + """ + Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default ) + """ + nr2s: Optional[int] = None + """ + Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default ) + """ + nr3s: Optional[int] = None + """ + Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default ) + """ + nosym: Optional[bool] = False + nosym_evc: Optional[bool] = False + noinv: Optional[bool] = False + """ + if (.TRUE.) disable the usage of k => -k symmetry (time reversal) in k-point generation + """ + no_t_rev: Optional[bool] = False + """ + if (.TRUE.) disable the usage of magnetic symmetry operations that consist in a rotation + time reversal. + """ + force_symmorphic: Optional[bool] = False + """ + if (.TRUE.) force the symmetry group to be symmorphic by disabling symmetry operations having an associated fractionary translation + """ + use_all_frac: Optional[bool] = False + occupations: Optional[Occupations] = None + one_atom_occupations: Optional[bool] = False + starting_spin_angle: Optional[bool] = False + degauss_cond: Optional[float] = 0 + """ + value of the gaussian spreading (Ry) for brillouin-zone integration in the conduction manifold in a two-chemical potential calculation (twochem=.true.). + """ + nelec_cond: Optional[float] = 0 + """ + Number of electrons placed in the conduction manifold in a two-chemical potential calculation (twochem=.true.). Of the total # of electrons nelec, nelec-nelec_cond will occupy the valence manifold and nelec_cond will be constrained in the conduction manifold. + """ + degauss: Optional[float] = 0 + """ + value of the gaussian spreading (Ry) for brillouin-zone integration in metals. + """ + smearing: Optional[Smearing] = "gaussian" + nspin: Optional[int] = 1 + sic_gamma: Optional[float] = 0 + """ + Strength of the gammaDFT potential. + """ + pol_type: Optional[PolType] = None + """ + Type of polaron in gammaDFT. + """ + sic_energy: Optional[bool] = False + """ + Enable the calculation of the total energy in gammaDFT. When .true., a preliminary calculation is performed to calculate the electron density in the absence of the polaron. When .false., the total energy printed in output should not be considered. For structural relaxations, it is recommended to use .false. to avoid doubling the computational cost. + """ + sci_vb: Optional[float] = 0 + """ + Valence band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted. + """ + sci_cb: Optional[float] = 0 + """ + Conduction band band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted. + """ + noncolin: Optional[bool] = False + """ + if .true. the program will perform a noncollinear calculation. + """ + ecfixed: Optional[float] = 0 + qcutz: Optional[float] = 0 + q2sigma: Optional[float] = 0.1 + input_dft: Optional[str] = None + """ + Exchange-correlation functional: eg 'PBE', 'BLYP' etc See Modules/funct.f90 for allowed values. Overrides the value read from pseudopotential files. Use with care and if you know what you are doing! + """ + ace: Optional[bool] = True + """ + Use Adaptively Compressed Exchange operator as in Lin Lin, J. Chem. Theory Comput. 2016, 12, 2242--2249, doi:10.1021/acs.jctc.6b00092 + """ + exx_fraction: Optional[float] = None + """ + Fraction of EXX for hybrid functional calculations. In the case of input_dft='PBE0', the default value is 0.25, while for input_dft='B3LYP' the exx_fraction default value is 0.20. + """ + screening_parameter: Optional[float] = 0.106 + """ + screening_parameter for HSE like hybrid functionals. + """ + exxdiv_treatment: Optional[ExxdivTreatment] = "gygi-baldereschi" + x_gamma_extrapolation: Optional[bool] = True + """ + Specific for EXX. If .true., extrapolate the G=0 term of the potential + """ + ecutvcut: Optional[float] = None + """ + Reciprocal space cutoff for correcting Coulomb potential divergencies at small q vectors. + """ + nqx1: Optional[int] = 0 + """ + Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points. + """ + nqx2: Optional[int] = None + """ + Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points. + """ + nqx3: Optional[int] = None + """ + Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points. + """ + localization_thr: Optional[float] = 0 + """ + Overlap threshold over which the exchange integral over a pair of localized orbitals is included in the evaluation of EXX operator. Any value greater than 0.0 triggers the SCDM localization and the evaluation on EXX using the localized orbitals. Very small value of the threshold should yield the same result as the default EXX evaluation + """ + Hubbard_occ: Optional[List[List[Union[HubbardOccItem2, HubbardOccItem3, float]]]] = None + Hubbard_alpha: Optional[List[float]] = None + Hubbard_beta: Optional[List[float]] = None + starting_ns_eigenvalue: Optional[List[List[List[float]]]] = None + dmft: Optional[bool] = False + """ + If true, nscf calculation will exit in restart mode, scf calculation will restart from there if DMFT updates are provided as hdf5 archive. Scf calculation should be used only with electron_maxstep = 1. + """ + dmft_prefix: Optional[str] = None + """ + prepended to hdf5 archive: dmft_prefix.h5 + """ + ensemble_energies: Optional[bool] = False + """ + If ensemble_energies = .true., an ensemble of xc energies is calculated non-selfconsistently for perturbed exchange-enhancement factors and LDA vs. PBE correlation ratios after each converged electronic ground state calculation. + """ + edir: Optional[int] = None + """ + The direction of the electric field or dipole correction is parallel to the bg(:,edir) reciprocal lattice vector, so the potential is constant in planes defined by FFT grid points; edir = 1, 2 or 3. Used only if tefield is .TRUE. + """ + emaxpos: Optional[float] = 0.5 + """ + Position of the maximum of the saw-like potential along crystal axis edir, within the unit cell (see below), 0 < emaxpos < 1 Used only if tefield is .TRUE. + """ + eopreg: Optional[float] = 0.1 + """ + Zone in the unit cell where the saw-like potential decreases. ( see below, 0 < eopreg < 1 ). Used only if tefield is .TRUE. + """ + eamp: Optional[float] = 0.001 + angle1: Optional[List[float]] = Field(None, max_length=1, min_length=1) + """ + The angle expressed in degrees between the initial magnetization and the z-axis. For noncollinear calculations only; index i runs over the atom types. + """ + angle2: Optional[List[float]] = Field(None, max_length=1, min_length=1) + """ + The angle expressed in degrees between the projection of the initial magnetization on x-y plane and the x-axis. For noncollinear calculations only. + """ + lforcet: Optional[bool] = None + """ + When starting a non collinear calculation using an existing density file from a collinear lsda calculation assumes previous density points in z direction and rotates it in the direction described by angle1 and angle2 variables for atomic type 1 + """ + constrained_magnetization: Optional[ConstrainedMagnetization] = "none" + """ + Used to perform constrained calculations in magnetic systems. + """ + fixed_magnetization: Optional[List[float]] = Field(None, max_length=3, min_length=3) + lambda_: Optional[float] = Field(1, alias="lambda") + """ + parameter used for constrained_magnetization calculations N.B.: if the scf calculation does not converge, try to reduce lambda to obtain convergence, then restart the run with a larger lambda + """ + report: Optional[int] = -1 + """ + determines when atomic magnetic moments are printed on output + """ + lspinorb: Optional[bool] = None + """ + if .TRUE. the noncollinear code can use a pseudopotential with spin-orbit. + """ + assume_isolated: Optional[AssumeIsolated] = "none" + """ + Used to perform calculation assuming the system to be isolated (a molecule or a cluster in a 3D supercell) + """ + esm_bc: Optional[EsmBc] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + esm_w: Optional[float] = 0 + """ + If assume_isolated = 'esm', determines the position offset [in a.u.] of the start of the effective screening region, measured relative to the cell edge. (ESM region begins at z = +/- [L_z/2 + esm_w] ). + """ + esm_efield: Optional[float] = 0 + """ + If assume_isolated = 'esm' and esm_bc = 'bc2', gives the magnitude of the electric field [Ry/a.u.] to be applied between semi-infinite ESM electrodes. + """ + esm_nfit: Optional[int] = 4 + """ + If assume_isolated = 'esm', gives the number of z-grid points for the polynomial fit along the cell edge. + """ + lgcscf: Optional[bool] = False + """ + If .TRUE. perform a constant bias potential (constant-mu) calculation with Grand-Canonical SCF. + """ + gcscf_mu: Optional[float] = None + """ + The target Fermi energy (eV) of GC-SCF. One can start with appropriate total charge of the system by giving tot_charge + """ + gcscf_conv_thr: Optional[float] = 0.01 + """ + Convergence threshold of Fermi energy (eV) for GC-SCF. + """ + gcscf_beta: Optional[float] = 0.05 + """ + Mixing factor for GC-SCF. Larger values are recommended, if systems with small DOS on Fermi surface as graphite. + """ + vdw_corr: Optional[VdwCorr] = "none" + """ + Type of Van der Waals correction + """ + london: Optional[bool] = False + """ + OBSOLESCENT, same as vdw_corr='DFT-D' + """ + london_s6: Optional[float] = 0.75 + """ + global scaling parameter for DFT-D. Default is good for PBE. + """ + london_c6: Optional[float] = None + """ + atomic C6 coefficient of each atom type + """ + london_rvdw: Optional[float] = None + """ + atomic vdw radii of each atom type + """ + london_rcut: Optional[float] = 200 + """ + cutoff radius (a.u.) for dispersion interactions + """ + dftd3_version: Optional[conint(ge=2, le=6)] = 3 + """ + Version of Grimme implementation of Grimme-D3 + """ + dftd3_threebody: Optional[bool] = True + """ + Turn three-body terms in Grimme-D3 on. If .false. two-body contributions only are computed, using two-body parameters of Grimme-D3. If dftd3_version=2, three-body contribution is always disabled. + """ + ts_vdw_econv_thr: Optional[float] = 1e-06 + """ + Optional: controls the convergence of the vdW energy (and forces). The default value is a safe choice, likely too safe, but you do not gain much in increasing it + """ + ts_vdw_isolated: Optional[bool] = False + """ + Optional: set it to .TRUE. when computing the Tkatchenko-Scheffler vdW energy or the Many-Body dispersion (MBD) energy for an isolated (non-periodic) system. + """ + xdm: Optional[bool] = False + """ + OBSOLESCENT, same as vdw_corr='xdm' + """ + xdm_a1: Optional[float] = 0.6836 + """ + Damping function parameter a1 (adimensional) + """ + xdm_a2: Optional[float] = 1.5045 + """ + Damping function parameter a2 (angstrom) + """ + space_group: Optional[int] = 0 + """ + The number of the space group of the crystal, as given in the International Tables of Crystallography A (ITA) + """ + uniqueb: Optional[bool] = False + """ + Used only for monoclinic lattices + """ + origin_choice: Optional[int] = 1 + """ + Used only for space groups that in the ITA allow the use of two different origins + """ + rhombohedral: Optional[bool] = True + """ + Used only for rhombohedral space groups. + """ + zgate: Optional[float] = 0.5 + """ + used only if gate = .TRUE. + """ + relaxz: Optional[bool] = False + """ + used only if gate = .TRUE. + """ + block: Optional[bool] = False + """ + used only if gate = .TRUE. + """ + block_1: Optional[float] = 0.45 + """ + used only if gate = .TRUE. and block = .TRUE. + """ + block_2: Optional[float] = 0.55 + """ + used only if gate = .TRUE. and block = .TRUE. + """ + block_height: Optional[float] = 0.1 + """ + used only if gate = .TRUE. and block = .TRUE. + """ + nextffield: Optional[int] = 0 + """ + Number of activated external ionic force fields. + """ + A: Optional[float] = None + B: Optional[float] = None + C: Optional[float] = None + cosAB: Optional[float] = None + cosAC: Optional[float] = None + cosBC: Optional[float] = None + + +class MixingMode(Enum): + plain = "plain" + TF = "TF" + local_TF = "local-TF" + + +class Diagonalization(Enum): + david = "david" + cg = "cg" + ppcg = "ppcg" + paro = "paro" + ParO = "ParO" + rmm_davidson = "rmm-davidson" + rmm_paro = "rmm-paro" + + +class EfieldPhase(Enum): + read = "read" + write = "write" + none = "none" + + +class Startingpot(Enum): + atomic = "atomic" + file = "file" + + +class Startingwfc(Enum): + atomic = "atomic" + atomic_random = "atomic+random" + random = "random" + file = "file" + + +class ElectronsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + electron_maxstep: Optional[int] = 100 + """ + maximum number of iterations in a scf step. If exact exchange is active, this will affect the inner loops. + """ + exx_maxstep: Optional[int] = 100 + """ + maximum number of outer iterations in a scf calculation with exact exchange. + """ + scf_must_converge: Optional[bool] = True + """ + If .false. do not stop molecular dynamics or ionic relaxation when electron_maxstep is reached. Use with care. + """ + conv_thr: Optional[float] = None + adaptive_thr: Optional[bool] = False + """ + If .TRUE. this turns on the use of an adaptive conv_thr for the inner scf loops when using EXX. + """ + conv_thr_init: Optional[float] = None + """ + When adaptive_thr = .TRUE. this is the convergence threshold used for the first scf cycle. + """ + conv_thr_multi: Optional[float] = None + """ + When adaptive_thr = .TRUE. the convergence threshold for each scf cycle is given by: max( conv_thr, conv_thr_multi * dexx ) + """ + mixing_mode: Optional[MixingMode] = "plain" + mixing_beta: Optional[float] = None + """ + mixing factor for self-consistency + """ + mixing_ndim: Optional[int] = 8 + """ + number of iterations used in mixing scheme + """ + mixing_fixed_ns: Optional[int] = 0 + """ + For DFT+U : number of iterations with fixed ns ( ns is the atomic density appearing in the Hubbard term ). + """ + diagonalization: Optional[Diagonalization] = "david" + diago_thr_init: Optional[float] = None + """ + Convergence threshold (ethr) for iterative diagonalization (the check is on eigenvalue convergence). + """ + diago_cg_maxiter: Optional[int] = None + """ + For conjugate gradient diagonalization: max number of iterations + """ + diago_ppcg_maxiter: Optional[int] = None + """ + For ppcg diagonalization: max number of iterations + """ + diago_david_ndim: Optional[int] = 2 + """ + For Davidson diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed). + """ + diago_rmm_ndim: Optional[int] = 4 + """ + For RMM-DIIS diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed). + """ + diago_rmm_conv: Optional[bool] = False + """ + If .TRUE., RMM-DIIS is performed up to converge. If .FALSE., RMM-DIIS is performed only once. + """ + diago_gs_nblock: Optional[int] = 16 + """ + For RMM-DIIS diagonalization: blocking size of Gram-Schmidt orthogonalization + """ + diago_full_acc: Optional[bool] = False + """ + If .TRUE. all the empty states are diagonalized at the same level of accuracy of the occupied ones. Otherwise the empty states are diagonalized using a larger threshold (this should not affect total energy, forces, and other ground-state properties). + """ + efield: Optional[float] = None + """ + Amplitude of the finite electric field (in Ry a.u.; 1 a.u. = 36.3609*10^10 V/m). Used only if lelfield==.TRUE. and if k-points (K_POINTS card) are not automatic. + """ + efield_cart: Optional[List[float]] = Field( + None, max_length=3, min_length=3, title="array of 3 number elements schema" + ) + efield_phase: Optional[EfieldPhase] = "none" + startingpot: Optional[Startingpot] = None + startingwfc: Optional[Startingwfc] = "atomic+random" + tqr: Optional[bool] = False + """ + If .true., use a real-space algorithm for augmentation charges of ultrasoft pseudopotentials and PAWsets. Faster but numerically less accurate than the default G-space algorithm. Use with care and after testing! + """ + real_space: Optional[bool] = False + """ + If .true., exploit real-space localization to compute matrix elements for nonlocal projectors. Faster and in principle better scaling than the default G-space algorithm, but numerically less accurate, may lead to some loss of translational invariance. Use with care and after testing! + """ + + +class IonPositions(Enum): + default = "default" + from_input = "from_input" + + +class IonVelocities(Enum): + default = "default" + from_input = "from_input" + + +class PotExtrapolation(Enum): + none = "none" + atomic = "atomic" + first_order = "first_order" + second_order = "second_order" + + +class WfcExtrapolation(Enum): + none = "none" + first_order = "first_order" + second_order = "second_order" + + +class IonTemperature(Enum): + rescaling = "rescaling" + rescale_v = "rescale-v" + rescale_T = "rescale-T" + reduce_T = "reduce-T" + berendsen = "berendsen" + andersen = "andersen" + svr = "svr" + initial = "initial" + not_controlled = "not_controlled" + + +class IonDynamics(Enum): + bfgs = "bfgs" + damp = "damp" + fire = "fire" + + +class IonsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + ion_positions: Optional[IonPositions] = "default" + ion_velocities: Optional[IonVelocities] = "default" + pot_extrapolation: Optional[PotExtrapolation] = "atomic" + """ + Used to extrapolate the potential from preceding ionic steps. + """ + wfc_extrapolation: Optional[WfcExtrapolation] = "none" + """ + Used to extrapolate the wavefunctions from preceding ionic steps. + """ + remove_rigid_rot: Optional[bool] = False + """ + This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells. + """ + ion_temperature: Optional[IonTemperature] = "not_controlled" + tempw: Optional[float] = 300 + """ + Starting temperature (Kelvin) in MD runs target temperature for most thermostats. + """ + tolp: Optional[float] = 100 + """ + Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp. + """ + delta_t: Optional[float] = 1 + nraise: Optional[int] = 1 + refold_pos: Optional[bool] = False + """ + This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell. + """ + upscale: Optional[float] = 100 + """ + Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale. + """ + bfgs_ndim: Optional[int] = 1 + """ + Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm. + """ + trust_radius_max: Optional[float] = 0.8 + """ + Maximum ionic displacement in the structural relaxation. (bfgs only) + """ + trust_radius_min: Optional[float] = 0.001 + """ + Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only) + """ + trust_radius_ini: Optional[float] = 0.5 + """ + Initial ionic displacement in the structural relaxation. (bfgs only) + """ + w_1: Optional[float] = 0.01 + w_2: Optional[float] = 0.5 + """ + Parameters used in line search based on the Wolfe conditions. (bfgs only) + """ + fire_alpha_init: Optional[float] = 0.2 + """ + Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3 + """ + fire_falpha: Optional[float] = 0.99 + """ + Scaling of the alpha mixing parameter for steps with P > 0; + """ + fire_nmin: Optional[int] = 5 + """ + Minimum number of steps with P > 0 before increase of dt + """ + fire_f_inc: Optional[float] = 1.1 + """ + Factor for increasing dt + """ + fire_f_dec: Optional[float] = 0.5 + """ + Factor for decreasing dt + """ + fire_dtmax: Optional[float] = 10 + """ + Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt + """ + ion_dynamics: Optional[IonDynamics] = "bfgs" + """ + CASE: calculation == 'relax' + """ + + +class IonDynamics5(Enum): + verlet = "verlet" + langevin = "langevin" + langevin_smc = "langevin-smc" + + +class IonsSchema5(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + ion_positions: Optional[IonPositions] = "default" + ion_velocities: Optional[IonVelocities] = "default" + pot_extrapolation: Optional[PotExtrapolation] = "atomic" + """ + Used to extrapolate the potential from preceding ionic steps. + """ + wfc_extrapolation: Optional[WfcExtrapolation] = "none" + """ + Used to extrapolate the wavefunctions from preceding ionic steps. + """ + remove_rigid_rot: Optional[bool] = False + """ + This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells. + """ + ion_temperature: Optional[IonTemperature] = "not_controlled" + tempw: Optional[float] = 300 + """ + Starting temperature (Kelvin) in MD runs target temperature for most thermostats. + """ + tolp: Optional[float] = 100 + """ + Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp. + """ + delta_t: Optional[float] = 1 + nraise: Optional[int] = 1 + refold_pos: Optional[bool] = False + """ + This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell. + """ + upscale: Optional[float] = 100 + """ + Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale. + """ + bfgs_ndim: Optional[int] = 1 + """ + Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm. + """ + trust_radius_max: Optional[float] = 0.8 + """ + Maximum ionic displacement in the structural relaxation. (bfgs only) + """ + trust_radius_min: Optional[float] = 0.001 + """ + Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only) + """ + trust_radius_ini: Optional[float] = 0.5 + """ + Initial ionic displacement in the structural relaxation. (bfgs only) + """ + w_1: Optional[float] = 0.01 + w_2: Optional[float] = 0.5 + """ + Parameters used in line search based on the Wolfe conditions. (bfgs only) + """ + fire_alpha_init: Optional[float] = 0.2 + """ + Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3 + """ + fire_falpha: Optional[float] = 0.99 + """ + Scaling of the alpha mixing parameter for steps with P > 0; + """ + fire_nmin: Optional[int] = 5 + """ + Minimum number of steps with P > 0 before increase of dt + """ + fire_f_inc: Optional[float] = 1.1 + """ + Factor for increasing dt + """ + fire_f_dec: Optional[float] = 0.5 + """ + Factor for decreasing dt + """ + fire_dtmax: Optional[float] = 10 + """ + Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt + """ + ion_dynamics: Optional[IonDynamics5] = "verlet" + """ + CASE: calculation == 'md' + """ + + +class IonDynamics6(Enum): + bfgs = "bfgs" + damp = "damp" + + +class IonsSchema6(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + ion_positions: Optional[IonPositions] = "default" + ion_velocities: Optional[IonVelocities] = "default" + pot_extrapolation: Optional[PotExtrapolation] = "atomic" + """ + Used to extrapolate the potential from preceding ionic steps. + """ + wfc_extrapolation: Optional[WfcExtrapolation] = "none" + """ + Used to extrapolate the wavefunctions from preceding ionic steps. + """ + remove_rigid_rot: Optional[bool] = False + """ + This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells. + """ + ion_temperature: Optional[IonTemperature] = "not_controlled" + tempw: Optional[float] = 300 + """ + Starting temperature (Kelvin) in MD runs target temperature for most thermostats. + """ + tolp: Optional[float] = 100 + """ + Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp. + """ + delta_t: Optional[float] = 1 + nraise: Optional[int] = 1 + refold_pos: Optional[bool] = False + """ + This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell. + """ + upscale: Optional[float] = 100 + """ + Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale. + """ + bfgs_ndim: Optional[int] = 1 + """ + Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm. + """ + trust_radius_max: Optional[float] = 0.8 + """ + Maximum ionic displacement in the structural relaxation. (bfgs only) + """ + trust_radius_min: Optional[float] = 0.001 + """ + Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only) + """ + trust_radius_ini: Optional[float] = 0.5 + """ + Initial ionic displacement in the structural relaxation. (bfgs only) + """ + w_1: Optional[float] = 0.01 + w_2: Optional[float] = 0.5 + """ + Parameters used in line search based on the Wolfe conditions. (bfgs only) + """ + fire_alpha_init: Optional[float] = 0.2 + """ + Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3 + """ + fire_falpha: Optional[float] = 0.99 + """ + Scaling of the alpha mixing parameter for steps with P > 0; + """ + fire_nmin: Optional[int] = 5 + """ + Minimum number of steps with P > 0 before increase of dt + """ + fire_f_inc: Optional[float] = 1.1 + """ + Factor for increasing dt + """ + fire_f_dec: Optional[float] = 0.5 + """ + Factor for decreasing dt + """ + fire_dtmax: Optional[float] = 10 + """ + Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt + """ + ion_dynamics: Optional[IonDynamics6] = "bfgs" + """ + CASE: calculation == 'vc-relax' + """ + + +class IonDynamics7(Enum): + beeman = "beeman" + + +class IonsSchema7(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + ion_positions: Optional[IonPositions] = "default" + ion_velocities: Optional[IonVelocities] = "default" + pot_extrapolation: Optional[PotExtrapolation] = "atomic" + """ + Used to extrapolate the potential from preceding ionic steps. + """ + wfc_extrapolation: Optional[WfcExtrapolation] = "none" + """ + Used to extrapolate the wavefunctions from preceding ionic steps. + """ + remove_rigid_rot: Optional[bool] = False + """ + This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells. + """ + ion_temperature: Optional[IonTemperature] = "not_controlled" + tempw: Optional[float] = 300 + """ + Starting temperature (Kelvin) in MD runs target temperature for most thermostats. + """ + tolp: Optional[float] = 100 + """ + Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp. + """ + delta_t: Optional[float] = 1 + nraise: Optional[int] = 1 + refold_pos: Optional[bool] = False + """ + This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell. + """ + upscale: Optional[float] = 100 + """ + Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale. + """ + bfgs_ndim: Optional[int] = 1 + """ + Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm. + """ + trust_radius_max: Optional[float] = 0.8 + """ + Maximum ionic displacement in the structural relaxation. (bfgs only) + """ + trust_radius_min: Optional[float] = 0.001 + """ + Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only) + """ + trust_radius_ini: Optional[float] = 0.5 + """ + Initial ionic displacement in the structural relaxation. (bfgs only) + """ + w_1: Optional[float] = 0.01 + w_2: Optional[float] = 0.5 + """ + Parameters used in line search based on the Wolfe conditions. (bfgs only) + """ + fire_alpha_init: Optional[float] = 0.2 + """ + Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3 + """ + fire_falpha: Optional[float] = 0.99 + """ + Scaling of the alpha mixing parameter for steps with P > 0; + """ + fire_nmin: Optional[int] = 5 + """ + Minimum number of steps with P > 0 before increase of dt + """ + fire_f_inc: Optional[float] = 1.1 + """ + Factor for increasing dt + """ + fire_f_dec: Optional[float] = 0.5 + """ + Factor for decreasing dt + """ + fire_dtmax: Optional[float] = 10 + """ + Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt + """ + ion_dynamics: Optional[IonDynamics7] = "beeman" + """ + CASE: calculation == 'vc-md' + """ + + +class CellDofree(Enum): + all = "all" + ibrav = "ibrav" + a = "a" + b = "b" + c = "c" + fixa = "fixa" + fixb = "fixb" + fixc = "fixc" + x = "x" + y = "y" + xy = "xy" + xz = "xz" + xyz = "xyz" + shape = "shape" + volume = "volume" + field_2Dxy = "2Dxy" + field_2Dshape = "2Dshape" + epitaxial_ab = "epitaxial_ab" + epitaxial_ac = "epitaxial_ac" + epitaxial_bc = "epitaxial_bc" + + +class CellDynamics(Enum): + none = "none" + sd = "sd" + damp_pr = "damp-pr" + damp_w = "damp-w" + bfgs = "bfgs" + + +class CellSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + press: Optional[float] = 0 + """ + Target pressure [KBar] in a variable-cell md or relaxation run. + """ + wmass: Optional[float] = None + """ + Fictitious cell mass [amu] for variable-cell simulations (both 'vc-md' and 'vc-relax'). Default: 0.75*Tot_Mass/pi**2 for Parrinello-Rahman MD; 0.75*Tot_Mass/pi**2/Omega**(2/3) for Wentzcovitch MD + """ + cell_factor: Optional[float] = None + """ + Used in the construction of the pseudopotential tables. It should exceed the maximum linear contraction of the cell during a simulation. Default: 2.0 for variable-cell calculations, 1.0 otherwise + """ + press_conv_thr: Optional[float] = 0.5 + """ + Convergence threshold on the pressure for variable cell relaxation ('vc-relax' : note that the other convergence thresholds for ionic relaxation apply as well). + """ + cell_dofree: Optional[CellDofree] = "all" + """ + Select which of the cell parameters should be moved + """ + cell_dynamics: Optional[CellDynamics] = "bfgs" + """ + CASE ( calculation == 'vc-relax' ) + """ + + +class CellDynamics3(Enum): + none = "none" + pr = "pr" + w = "w" + + +class CellSchema3(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + press: Optional[float] = 0 + """ + Target pressure [KBar] in a variable-cell md or relaxation run. + """ + wmass: Optional[float] = None + """ + Fictitious cell mass [amu] for variable-cell simulations (both 'vc-md' and 'vc-relax'). Default: 0.75*Tot_Mass/pi**2 for Parrinello-Rahman MD; 0.75*Tot_Mass/pi**2/Omega**(2/3) for Wentzcovitch MD + """ + cell_factor: Optional[float] = None + """ + Used in the construction of the pseudopotential tables. It should exceed the maximum linear contraction of the cell during a simulation. Default: 2.0 for variable-cell calculations, 1.0 otherwise + """ + press_conv_thr: Optional[float] = 0.5 + """ + Convergence threshold on the pressure for variable cell relaxation ('vc-relax' : note that the other convergence thresholds for ionic relaxation apply as well). + """ + cell_dofree: Optional[CellDofree] = "all" + """ + Select which of the cell parameters should be moved + """ + cell_dynamics: Optional[CellDynamics3] = None + """ + CASE ( calculation == 'vc-md' ) + """ + + +class Value(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + X: Optional[str] = None + """ + label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in "Xn" (e.g. Fe1) or "X_*" or "X-*" (e.g. C1, C_h; max total length cannot exceed 3 characters) + """ + Mass_X: Optional[float] = None + """ + mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided) + """ + PseudoPot_X: Optional[str] = None + """ + PseudoPot_X + """ + + +class AtomicSpeciesSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + values: Optional[List[Value]] = None + + +class CardOption(Enum): + alat = "alat" + bohr = "bohr" + angstrom = "angstrom" + crystal = "crystal" + crystal_sg = "crystal_sg" + + +class Value143(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + X: Optional[str] = None + """ + label of the atom as specified in ATOMIC_SPECIES + """ + x: float + """ + atomic positions + """ + y: float + """ + atomic positions + """ + z: float + """ + atomic positions + """ + if_pos_1_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(1)", title="integer one or zero") + if_pos_2_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(2)", title="integer one or zero") + if_pos_3_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(3)", title="integer one or zero") + + +class AtomicPositionsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + card_option: Optional[CardOption] = "alat" + values: Optional[List[Value143]] = None + + +class CardOption5(Enum): + tpiba = "tpiba" + automatic = "automatic" + crystal = "crystal" + gamma = "gamma" + tpiba_b = "tpiba_b" + crystal_b = "crystal_b" + tpiba_c = "tpiba_c" + crystal_c = "crystal_c" + + +class Value144(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + nks: Optional[int] = None + """ + Number of supplied special k-points. + """ + xk_x: Optional[float] = None + xk_y: Optional[float] = None + xk_z: Optional[float] = None + wk: Optional[float] = None + + +class Values(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + nk1: Optional[int] = None + """ + Number of supplied special k-points. + """ + nk2: Optional[int] = None + """ + Number of supplied special k-points. + """ + nk3: Optional[int] = None + """ + Number of supplied special k-points. + """ + sk1: Optional[int] = None + """ + Number of supplied special k-points. + """ + sk2: Optional[int] = None + """ + Number of supplied special k-points. + """ + sk3: Optional[int] = None + """ + Number of supplied special k-points. + """ + + +class KPointsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + card_option: Optional[CardOption5] = None + values: Optional[Union[List[Value144], Values]] = None + + +class CardOption6(Enum): + alat = "alat" + bohr = "bohr" + angstrom = "angstrom" + + +class Values8(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + v1: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + v2: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + v3: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + + +class CellParametersSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + card_option: Optional[CardOption6] = None + """ + label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in "Xn" (e.g. Fe1) or "X_*" or "X-*" (e.g. C1, C_h; max total length cannot exceed 3 characters) + """ + values: Optional[Values8] = None + + +class CardOption7(Enum): + atomic = "atomic" + ortho_atomic = "ortho-atomic" + norm_atomic = "norm-atomic" + wf = "wf" + pseudo = "pseudo" + + +class U(Enum): + U = "U" + + +class Values9(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + U_1: Optional[U] = Field(None, alias="U") + """ + string constant "U"; indicates the specs for the U parameter will be given + """ + label: Optional[str] = None + """ + label of the atom (as defined in ATOMIC_SPECIES) + """ + manifold: Optional[str] = None + """ + specs of the manifold (e.g., 3d, 2p...) + """ + u_val: Optional[float] = None + """ + value of the U parameter (in eV) + """ + + +class J0(Enum): + J0 = "J0" + + +class Values10(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + J0_1: Optional[J0] = Field(None, alias="J0") + """ + string constant "J0"; indicates the specs for the J0 parameter will be given + """ + label: Optional[str] = None + """ + label of the atom (as defined in ATOMIC_SPECIES) + """ + manifold: Optional[str] = None + """ + specs of the manifold (e.g., 3d, 2p...) + """ + j0_val: Optional[float] = None + """ + value of the J0 parameter (in eV) + """ + + +class ParamType(Enum): + U = "U" + J = "J" + B = "B" + E2 = "E2" + E3 = "E3" + + +class Value145(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + paramType: Optional[ParamType] = None + """ + character describing the type of Hubbard parameter allowed values: U, J and either B (for d-orbitals) or E2 and E3 (for f-orbitals) + """ + label: Optional[str] = None + """ + label of the atom (as defined in ATOMIC_SPECIES) + """ + manifold: Optional[str] = None + """ + specs of the manifold (e.g., 3d, 2p...) + """ + paramValue: Optional[float] = None + """ + value of the J0 parameter (in eV) + """ + + +class Values11(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + U_1: Optional[U] = Field(None, alias="U") + """ + string constant "U"; indicates the specs for the U parameter will be given + """ + label: Optional[str] = None + """ + label of the atom (as defined in ATOMIC_SPECIES) + """ + manifold: Optional[str] = None + """ + specs of the manifold (e.g., 3d, 2p...) + """ + u_val: Optional[float] = None + """ + value of the U parameter (in eV) + """ + + +class Values12(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + J0_1: Optional[J0] = Field(None, alias="J0") + """ + string constant "J0"; indicates the specs for the J0 parameter will be given + """ + label: Optional[str] = None + """ + label of the atom (as defined in ATOMIC_SPECIES) + """ + manifold: Optional[str] = None + """ + specs of the manifold (e.g., 3d, 2p...) + """ + j0_val: Optional[float] = None + """ + value of the J0 parameter (in eV) + """ + + +class V(Enum): + V = "V" + + +class Values13(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + V_1: Optional[V] = Field(None, alias="V") + """ + string constant "V"; indicates the specs for the V parameter will be given + """ + label_I_: Optional[str] = Field(None, alias="label(I)") + """ + label of the atom I (as defined in ATOMIC_SPECIES) + """ + manifold_I_: Optional[str] = Field(None, alias="manifold(I)") + """ + specs of the manifold for atom I (e.g., 3d, 2p...) + """ + label_J_: Optional[str] = Field(None, alias="label(J)") + """ + label of the atom J (as defined in ATOMIC_SPECIES) + """ + manifold_J_: Optional[str] = Field(None, alias="manifold(J)") + """ + specs of the manifold for atom J (e.g., 3d, 2p...) + """ + I: Optional[int] = None + """ + index of the atom I + """ + J: Optional[int] = None + """ + index of the atom J + """ + v_val_I_J_: Optional[float] = Field(None, alias="v_val(I,J)") + """ + value of the V parameter for the atom pair I,J (in eV) + """ + + +class HubbardSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + card_option: Optional[CardOption7] = None + values: Optional[ + Union[List[Union[Values9, Values10]], List[Value145], List[Union[Values11, Values12, Values13]]] + ] = None + + +class PwxMainSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + CONTROL: Optional[ControlSchema] = Field(None, alias="&CONTROL", title="control schema") + SYSTEM: Optional[Union[SystemSchema, SystemSchema1]] = Field(None, alias="&SYSTEM", title="system schema") + ELECTRONS: Optional[ElectronsSchema] = Field(None, alias="&ELECTRONS", title="electrons schema") + IONS: Optional[Union[IonsSchema, IonsSchema5, IonsSchema6, IonsSchema7]] = Field(None, alias="&IONS") + CELL: Optional[Union[CellSchema, CellSchema3]] = Field(None, alias="&CELL") + ATOMIC_SPECIES: Optional[AtomicSpeciesSchema] = Field(None, title="atomic species schema") + ATOMIC_POSITIONS: Optional[AtomicPositionsSchema] = Field(None, title="atomic positions schema") + """ + https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1493 + """ + K_POINTS: Optional[KPointsSchema] = Field(None, title="k points schema") + CELL_PARAMETERS: Optional[CellParametersSchema] = Field(None, title="cell parameters schema") + HUBBARD: Optional[HubbardSchema] = Field(None, title="hubbard schema") diff --git a/dist/py/apse/materials/builders/slab/pymatgen/__init__.py b/dist/py/apse/materials/builders/slab/pymatgen/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/apse/materials/builders/slab/pymatgen/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/apse/materials/builders/slab/pymatgen/parameters.py b/dist/py/apse/materials/builders/slab/pymatgen/parameters.py new file mode 100644 index 000000000..964de863b --- /dev/null +++ b/dist/py/apse/materials/builders/slab/pymatgen/parameters.py @@ -0,0 +1,28 @@ +# generated by datamodel-codegen: +# filename: apse/materials/builders/slab/pymatgen/parameters.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional, Union + +from pydantic import BaseModel, confloat, conint + + +class PymatgenSlabGeneratorParametersSchema(BaseModel): + min_vacuum_size: Optional[Union[conint(ge=0), confloat(ge=0.0)]] = 0 + """ + Minimum size of the vacuum in layers or angstroms + """ + in_unit_planes: Optional[bool] = True + """ + Whether to use unit planes for the vacuum and slab size + """ + reorient_lattice: Optional[bool] = True + """ + Whether to reorient the lattice to have c vector along the z-axis + """ + symmetrize: Optional[bool] = True + """ + Whether to symmetrize the slab + """ diff --git a/dist/py/context_provider.py b/dist/py/context_provider.py new file mode 100644 index 000000000..a34def1e7 --- /dev/null +++ b/dist/py/context_provider.py @@ -0,0 +1,69 @@ +# generated by datamodel-codegen: +# filename: context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, Optional + +from pydantic import BaseModel, ConfigDict + + +class Name(Enum): + PlanewaveCutoffDataManager = "PlanewaveCutoffDataManager" + KGridFormDataManager = "KGridFormDataManager" + QGridFormDataManager = "QGridFormDataManager" + IGridFormDataManager = "IGridFormDataManager" + QPathFormDataManager = "QPathFormDataManager" + IPathFormDataManager = "IPathFormDataManager" + KPathFormDataManager = "KPathFormDataManager" + ExplicitKPathFormDataManager = "ExplicitKPathFormDataManager" + ExplicitKPath2PIBAFormDataManager = "ExplicitKPath2PIBAFormDataManager" + HubbardJContextManager = "HubbardJContextManager" + HubbardUContextManager = "HubbardUContextManager" + HubbardVContextManager = "HubbardVContextManager" + HubbardContextManagerLegacy = "HubbardContextManagerLegacy" + NEBFormDataManager = "NEBFormDataManager" + BoundaryConditionsFormDataManager = "BoundaryConditionsFormDataManager" + MLSettingsDataManager = "MLSettingsDataManager" + MLTrainTestSplitDataManager = "MLTrainTestSplitDataManager" + IonDynamicsContextProvider = "IonDynamicsContextProvider" + CollinearMagnetizationDataManager = "CollinearMagnetizationDataManager" + NonCollinearMagnetizationDataManager = "NonCollinearMagnetizationDataManager" + QEPWXInputDataManager = "QEPWXInputDataManager" + QENEBInputDataManager = "QENEBInputDataManager" + VASPInputDataManager = "VASPInputDataManager" + VASPNEBInputDataManager = "VASPNEBInputDataManager" + NWChemInputDataManager = "NWChemInputDataManager" + + +class ContextProviderSchema(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + name: Name + domain: Optional[str] = None + """ + domain of the context provider + """ + entityName: Optional[str] = None + """ + entity name associated with the context provider + """ + data: Optional[Dict[str, Any]] = None + """ + data object for the context provider + """ + extraData: Optional[Dict[str, Any]] = None + """ + additional data object for the context provider + """ + isEdited: Optional[bool] = None + """ + flag indicating if the context provider has been edited + """ + context: Optional[Dict[str, Any]] = None + """ + context object for the context provider + """ diff --git a/dist/py/context_providers_directory/__init__.py b/dist/py/context_providers_directory/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/context_providers_directory/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/context_providers_directory/boundary_conditions_data_provider.py b/dist/py/context_providers_directory/boundary_conditions_data_provider.py new file mode 100644 index 000000000..a207863a7 --- /dev/null +++ b/dist/py/context_providers_directory/boundary_conditions_data_provider.py @@ -0,0 +1,27 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/boundary_conditions_data_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditionsDataProviderSchema(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: Optional[float] = None + electricField: Optional[float] = Field(None, title="Electric Field (eV/A)") + targetFermiEnergy: Optional[float] = Field(None, title="Target Fermi Energy (eV)") diff --git a/dist/py/context_providers_directory/by_application/__init__.py b/dist/py/context_providers_directory/by_application/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/context_providers_directory/by_application/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/context_providers_directory/by_application/nwchem_total_energy_context_provider.py b/dist/py/context_providers_directory/by_application/nwchem_total_energy_context_provider.py new file mode 100644 index 000000000..49cbe015d --- /dev/null +++ b/dist/py/context_providers_directory/by_application/nwchem_total_energy_context_provider.py @@ -0,0 +1,50 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/by_application/nwchem_total_energy_context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import BaseModel + + +class NWChemTotalEnergyContextProviderSchema(BaseModel): + CHARGE: int + """ + Total charge of the system. + """ + MULT: int + """ + Spin multiplicity of the system. + """ + BASIS: str + """ + Basis set label used in the calculation (e.g., '6-31G'). + """ + NAT: int + """ + Number of atoms in the system. + """ + NTYP: int + """ + Number of unique atomic species in the system. + """ + ATOMIC_POSITIONS: str + """ + Formatted text block with atomic positions including constraints. + """ + ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS: str + """ + Formatted text block with atomic positions without constraints. + """ + ATOMIC_SPECIES: str + """ + Formatted text block for atomic species, including element symbols and masses. + """ + FUNCTIONAL: str + """ + Exchange-correlation functional identifier (e.g., 'B3LYP'). + """ + CARTESIAN: bool + """ + Whether atomic positions are expressed in cartesian coordinates. + """ diff --git a/dist/py/context_providers_directory/by_application/qe_neb_context_provider.py b/dist/py/context_providers_directory/by_application/qe_neb_context_provider.py new file mode 100644 index 000000000..9e1ab5115 --- /dev/null +++ b/dist/py/context_providers_directory/by_application/qe_neb_context_provider.py @@ -0,0 +1,122 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/by_application/qe_neb_context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, ConfigDict, Field, conint + + +class RESTARTMODE(Enum): + from_scratch = "from_scratch" + restart = "restart" + + +class ATOMICSPECY(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + X: Optional[str] = None + """ + label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in "Xn" (e.g. Fe1) or "X_*" or "X-*" (e.g. C1, C_h; max total length cannot exceed 3 characters) + """ + Mass_X: Optional[float] = None + """ + mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided) + """ + PseudoPot_X: Optional[str] = None + """ + PseudoPot_X + """ + + +class ATOMICSPECIESWITHLABEL(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + X: Optional[str] = None + """ + label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in "Xn" (e.g. Fe1) or "X_*" or "X-*" (e.g. C1, C_h; max total length cannot exceed 3 characters) + """ + Mass_X: Optional[float] = None + """ + mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided) + """ + PseudoPot_X: Optional[str] = None + """ + PseudoPot_X + """ + + +class ATOMICPOSITION(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + X: Optional[str] = None + """ + label of the atom as specified in ATOMIC_SPECIES + """ + x: float + """ + atomic positions + """ + y: float + """ + atomic positions + """ + z: float + """ + atomic positions + """ + if_pos_1_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(1)", title="integer one or zero") + if_pos_2_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(2)", title="integer one or zero") + if_pos_3_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(3)", title="integer one or zero") + + +class CELLPARAMETERS(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + v1: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + v2: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + v3: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + + +class QENEBContextProviderSchema(BaseModel): + IBRAV: int + RESTART_MODE: Optional[RESTARTMODE] = "from_scratch" + ATOMIC_SPECIES: List[ATOMICSPECY] + ATOMIC_SPECIES_WITH_LABELS: List[ATOMICSPECIESWITHLABEL] + NAT: int + """ + number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms) + """ + NTYP: int + """ + number of types of atoms in the unit cell + """ + NTYP_WITH_LABELS: conint(ge=1) + """ + Number of different atomic species including labels + """ + ATOMIC_POSITIONS: Optional[List[ATOMICPOSITION]] = None + ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS: Optional[str] = None + """ + Formatted text block for ATOMIC_POSITIONS card WITHOUT constraints. Format: 'X x y z' per line + """ + CELL_PARAMETERS: CELLPARAMETERS + FIRST_IMAGE: str + """ + Atomic positions block (ATOMIC_POSITIONS) for the first NEB image. + """ + LAST_IMAGE: str + """ + Atomic positions block (ATOMIC_POSITIONS) for the last NEB image. + """ + INTERMEDIATE_IMAGES: List[str] + """ + Atomic positions blocks (ATOMIC_POSITIONS) for all intermediate NEB images. + """ diff --git a/dist/py/context_providers_directory/by_application/qe_pwx_base_context_provider.py b/dist/py/context_providers_directory/by_application/qe_pwx_base_context_provider.py new file mode 100644 index 000000000..f04215cfd --- /dev/null +++ b/dist/py/context_providers_directory/by_application/qe_pwx_base_context_provider.py @@ -0,0 +1,110 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/by_application/qe_pwx_base_context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, ConfigDict, Field, conint + + +class RESTARTMODE(Enum): + from_scratch = "from_scratch" + restart = "restart" + + +class ATOMICSPECY(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + X: Optional[str] = None + """ + label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in "Xn" (e.g. Fe1) or "X_*" or "X-*" (e.g. C1, C_h; max total length cannot exceed 3 characters) + """ + Mass_X: Optional[float] = None + """ + mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided) + """ + PseudoPot_X: Optional[str] = None + """ + PseudoPot_X + """ + + +class ATOMICSPECIESWITHLABEL(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + X: Optional[str] = None + """ + label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in "Xn" (e.g. Fe1) or "X_*" or "X-*" (e.g. C1, C_h; max total length cannot exceed 3 characters) + """ + Mass_X: Optional[float] = None + """ + mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided) + """ + PseudoPot_X: Optional[str] = None + """ + PseudoPot_X + """ + + +class ATOMICPOSITION(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + X: Optional[str] = None + """ + label of the atom as specified in ATOMIC_SPECIES + """ + x: float + """ + atomic positions + """ + y: float + """ + atomic positions + """ + z: float + """ + atomic positions + """ + if_pos_1_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(1)", title="integer one or zero") + if_pos_2_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(2)", title="integer one or zero") + if_pos_3_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(3)", title="integer one or zero") + + +class CELLPARAMETERS(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + v1: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + v2: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + v3: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + + +class QEPwxBaseContextProviderSchema(BaseModel): + IBRAV: Optional[int] = None + RESTART_MODE: Optional[RESTARTMODE] = "from_scratch" + ATOMIC_SPECIES: Optional[List[ATOMICSPECY]] = None + ATOMIC_SPECIES_WITH_LABELS: Optional[List[ATOMICSPECIESWITHLABEL]] = None + NAT: Optional[int] = None + """ + number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms) + """ + NTYP: Optional[int] = None + """ + number of types of atoms in the unit cell + """ + NTYP_WITH_LABELS: Optional[conint(ge=1)] = None + """ + Number of different atomic species including labels + """ + ATOMIC_POSITIONS: Optional[List[ATOMICPOSITION]] = None + ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS: Optional[str] = None + """ + Formatted text block for ATOMIC_POSITIONS card WITHOUT constraints. Format: 'X x y z' per line + """ + CELL_PARAMETERS: Optional[CELLPARAMETERS] = None diff --git a/dist/py/context_providers_directory/by_application/qe_pwx_context_provider.py b/dist/py/context_providers_directory/by_application/qe_pwx_context_provider.py new file mode 100644 index 000000000..1d4e65a77 --- /dev/null +++ b/dist/py/context_providers_directory/by_application/qe_pwx_context_provider.py @@ -0,0 +1,110 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/by_application/qe_pwx_context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, ConfigDict, Field, conint + + +class RESTARTMODE(Enum): + from_scratch = "from_scratch" + restart = "restart" + + +class ATOMICSPECY(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + X: Optional[str] = None + """ + label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in "Xn" (e.g. Fe1) or "X_*" or "X-*" (e.g. C1, C_h; max total length cannot exceed 3 characters) + """ + Mass_X: Optional[float] = None + """ + mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided) + """ + PseudoPot_X: Optional[str] = None + """ + PseudoPot_X + """ + + +class ATOMICSPECIESWITHLABEL(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + X: Optional[str] = None + """ + label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in "Xn" (e.g. Fe1) or "X_*" or "X-*" (e.g. C1, C_h; max total length cannot exceed 3 characters) + """ + Mass_X: Optional[float] = None + """ + mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided) + """ + PseudoPot_X: Optional[str] = None + """ + PseudoPot_X + """ + + +class ATOMICPOSITION(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + X: Optional[str] = None + """ + label of the atom as specified in ATOMIC_SPECIES + """ + x: float + """ + atomic positions + """ + y: float + """ + atomic positions + """ + z: float + """ + atomic positions + """ + if_pos_1_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(1)", title="integer one or zero") + if_pos_2_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(2)", title="integer one or zero") + if_pos_3_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(3)", title="integer one or zero") + + +class CELLPARAMETERS(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + v1: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + v2: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + v3: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema") + + +class QEPwxContextProviderSchema(BaseModel): + IBRAV: int + RESTART_MODE: Optional[RESTARTMODE] = "from_scratch" + ATOMIC_SPECIES: List[ATOMICSPECY] + ATOMIC_SPECIES_WITH_LABELS: List[ATOMICSPECIESWITHLABEL] + NAT: int + """ + number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms) + """ + NTYP: int + """ + number of types of atoms in the unit cell + """ + NTYP_WITH_LABELS: conint(ge=1) + """ + Number of different atomic species including labels + """ + ATOMIC_POSITIONS: List[ATOMICPOSITION] + ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS: str + """ + Formatted text block for ATOMIC_POSITIONS card WITHOUT constraints. Format: 'X x y z' per line + """ + CELL_PARAMETERS: CELLPARAMETERS diff --git a/dist/py/context_providers_directory/by_application/vasp_context_provider.py b/dist/py/context_providers_directory/by_application/vasp_context_provider.py new file mode 100644 index 000000000..79e00215f --- /dev/null +++ b/dist/py/context_providers_directory/by_application/vasp_context_provider.py @@ -0,0 +1,18 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/by_application/vasp_context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import BaseModel + + +class VASPContextProviderSchema(BaseModel): + POSCAR: str + """ + POSCAR content for VASP including lattice, atom types, positions and constraints. + """ + POSCAR_WITH_CONSTRAINTS: str + """ + POSCAR content for VASP including lattice, atom types, positions and constraints. May differ in how constraints are represented. + """ diff --git a/dist/py/context_providers_directory/by_application/vasp_neb_context_provider.py b/dist/py/context_providers_directory/by_application/vasp_neb_context_provider.py new file mode 100644 index 000000000..ad539f45d --- /dev/null +++ b/dist/py/context_providers_directory/by_application/vasp_neb_context_provider.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/by_application/vasp_neb_context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import BaseModel + + +class VASPNEBContextProviderSchema(BaseModel): + FIRST_IMAGE: str + """ + POSCAR content with constraints for the first NEB image. + """ + LAST_IMAGE: str + """ + POSCAR content with constraints for the last NEB image. + """ + INTERMEDIATE_IMAGES: List[str] + """ + POSCAR contents with constraints for all intermediate NEB images. + """ diff --git a/dist/py/context_providers_directory/collinear_magnetization_context_provider.py b/dist/py/context_providers_directory/collinear_magnetization_context_provider.py new file mode 100644 index 000000000..748fa8c6e --- /dev/null +++ b/dist/py/context_providers_directory/collinear_magnetization_context_provider.py @@ -0,0 +1,21 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/collinear_magnetization_context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import BaseModel, Field, confloat + + +class StartingMagnetizationItem(BaseModel): + atomicSpecies: str = Field(..., title="Atomic species") + value: confloat(ge=-1.0, le=1.0) = Field(..., title="Starting magnetization") + index: int = Field(..., title="Index") + + +class CollinearMagnetizationContextProviderSchema(BaseModel): + startingMagnetization: List[StartingMagnetizationItem] + isTotalMagnetization: bool = Field(..., title="Set total magnetization instead") + totalMagnetization: float = Field(..., title="Total magnetization") diff --git a/dist/py/context_providers_directory/enum.py b/dist/py/context_providers_directory/enum.py new file mode 100644 index 000000000..18cd59aac --- /dev/null +++ b/dist/py/context_providers_directory/enum.py @@ -0,0 +1,42 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/enum.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any + + +class ContextProviderNameEnum(Enum): + PlanewaveCutoffDataManager = "PlanewaveCutoffDataManager" + KGridFormDataManager = "KGridFormDataManager" + QGridFormDataManager = "QGridFormDataManager" + IGridFormDataManager = "IGridFormDataManager" + QPathFormDataManager = "QPathFormDataManager" + IPathFormDataManager = "IPathFormDataManager" + KPathFormDataManager = "KPathFormDataManager" + ExplicitKPathFormDataManager = "ExplicitKPathFormDataManager" + ExplicitKPath2PIBAFormDataManager = "ExplicitKPath2PIBAFormDataManager" + HubbardJContextManager = "HubbardJContextManager" + HubbardUContextManager = "HubbardUContextManager" + HubbardVContextManager = "HubbardVContextManager" + HubbardContextManagerLegacy = "HubbardContextManagerLegacy" + NEBFormDataManager = "NEBFormDataManager" + BoundaryConditionsFormDataManager = "BoundaryConditionsFormDataManager" + MLSettingsDataManager = "MLSettingsDataManager" + MLTrainTestSplitDataManager = "MLTrainTestSplitDataManager" + IonDynamicsContextProvider = "IonDynamicsContextProvider" + CollinearMagnetizationDataManager = "CollinearMagnetizationDataManager" + NonCollinearMagnetizationDataManager = "NonCollinearMagnetizationDataManager" + QEPWXInputDataManager = "QEPWXInputDataManager" + QENEBInputDataManager = "QENEBInputDataManager" + VASPInputDataManager = "VASPInputDataManager" + VASPNEBInputDataManager = "VASPNEBInputDataManager" + NWChemInputDataManager = "NWChemInputDataManager" diff --git a/dist/py/context_providers_directory/hubbard_j_context_provider.py b/dist/py/context_providers_directory/hubbard_j_context_provider.py new file mode 100644 index 000000000..e4668a590 --- /dev/null +++ b/dist/py/context_providers_directory/hubbard_j_context_provider.py @@ -0,0 +1,32 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/hubbard_j_context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, Field, RootModel + + +class Species(Enum): + U = "U" + J = "J" + B = "B" + E2 = "E2" + E3 = "E3" + + +class HubbardJContextProviderSchemaItem(BaseModel): + paramType: Optional[Species] = Field(None, title="Species") + atomicSpecies: Optional[str] = Field(None, title="Species") + atomicOrbital: Optional[str] = Field(None, title="Orbital") + value: Optional[float] = Field(None, title="Value (eV)") + + +class HubbardJContextProviderSchema(RootModel[List[HubbardJContextProviderSchemaItem]]): + root: List[HubbardJContextProviderSchemaItem] = Field(..., min_length=1, title="Hubbard J Context Provider Schema") + """ + Hubbard parameters for DFT+U+J calculation. + """ diff --git a/dist/py/context_providers_directory/hubbard_legacy_context_provider.py b/dist/py/context_providers_directory/hubbard_legacy_context_provider.py new file mode 100644 index 000000000..8209c216b --- /dev/null +++ b/dist/py/context_providers_directory/hubbard_legacy_context_provider.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/hubbard_legacy_context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel, Field, RootModel + + +class HubbardLegacyContextProviderSchemaItem(BaseModel): + atomicSpecies: Optional[str] = Field(None, title="Atomic species") + atomicSpeciesIndex: Optional[int] = Field(None, title="Species index") + hubbardUValue: Optional[float] = Field(None, title="Hubbard U (eV)") + + +class HubbardLegacyContextProviderSchema(RootModel[List[HubbardLegacyContextProviderSchemaItem]]): + root: List[HubbardLegacyContextProviderSchemaItem] = Field( + ..., min_length=1, title="Hubbard Legacy Context Provider Schema" + ) + """ + Hubbard parameters for DFT+U calculation. + """ diff --git a/dist/py/context_providers_directory/hubbard_u_context_provider.py b/dist/py/context_providers_directory/hubbard_u_context_provider.py new file mode 100644 index 000000000..779385146 --- /dev/null +++ b/dist/py/context_providers_directory/hubbard_u_context_provider.py @@ -0,0 +1,22 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/hubbard_u_context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel, Field, RootModel + + +class HubbardUContextProviderSchemaItem(BaseModel): + atomicSpecies: Optional[str] = Field(None, title="Atomic species") + atomicOrbital: Optional[str] = Field(None, title="Atomic orbital") + hubbardUValue: Optional[float] = Field(None, title="Hubbard U (eV)") + + +class HubbardUContextProviderSchema(RootModel[List[HubbardUContextProviderSchemaItem]]): + root: List[HubbardUContextProviderSchemaItem] = Field(..., title="Hubbard U Context Provider Schema") + """ + Hubbard U parameters for DFT+U or DFT+U+V calculation. + """ diff --git a/dist/py/context_providers_directory/hubbard_v_context_provider.py b/dist/py/context_providers_directory/hubbard_v_context_provider.py new file mode 100644 index 000000000..0a502d959 --- /dev/null +++ b/dist/py/context_providers_directory/hubbard_v_context_provider.py @@ -0,0 +1,26 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/hubbard_v_context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel, Field, RootModel + + +class HubbardVContextProviderSchemaItem(BaseModel): + atomicSpecies: Optional[str] = Field(None, title="Species 1") + siteIndex: Optional[int] = Field(None, title="Site no 1") + atomicOrbital: Optional[str] = Field(None, title="Orbital 1") + atomicSpecies2: Optional[str] = Field(None, title="Species 2") + siteIndex2: Optional[int] = Field(None, title="Site no 2") + atomicOrbital2: Optional[str] = Field(None, title="Orbital 2") + hubbardVValue: Optional[float] = Field(None, title="V (eV)") + + +class HubbardVContextProviderSchema(RootModel[List[HubbardVContextProviderSchemaItem]]): + root: List[HubbardVContextProviderSchemaItem] = Field(..., min_length=1, title="Hubbard V Context Provider Schema") + """ + Hubbard V parameters for DFT+U+V calculation. + """ diff --git a/dist/py/context_providers_directory/ion_dynamics_context_provider.py b/dist/py/context_providers_directory/ion_dynamics_context_provider.py new file mode 100644 index 000000000..201e6663c --- /dev/null +++ b/dist/py/context_providers_directory/ion_dynamics_context_provider.py @@ -0,0 +1,16 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/ion_dynamics_context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, Field + + +class IonDynamicsContextProviderSchema(BaseModel): + numberOfSteps: Optional[int] = Field(None, title="numberOfSteps") + timeStep: Optional[float] = Field(None, title="timeStep (Hartree a.u.)") + electronMass: Optional[float] = Field(None, title="Effective electron mass") + temperature: Optional[float] = Field(None, title="Ionic temperature (K)") diff --git a/dist/py/context_providers_directory/ml_settings_context_provider.py b/dist/py/context_providers_directory/ml_settings_context_provider.py new file mode 100644 index 000000000..e47372828 --- /dev/null +++ b/dist/py/context_providers_directory/ml_settings_context_provider.py @@ -0,0 +1,21 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/ml_settings_context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel + + +class ProblemCategory(Enum): + regression = "regression" + classification = "classification" + clustering = "clustering" + + +class MLSettingsContextProviderSchema(BaseModel): + target_column_name: Optional[str] = None + problem_category: Optional[ProblemCategory] = None diff --git a/dist/py/context_providers_directory/ml_train_test_split_context_provider.py b/dist/py/context_providers_directory/ml_train_test_split_context_provider.py new file mode 100644 index 000000000..534a5c4a9 --- /dev/null +++ b/dist/py/context_providers_directory/ml_train_test_split_context_provider.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/ml_train_test_split_context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, confloat + + +class MLTrainTestSplitContextProviderSchema(BaseModel): + fraction_held_as_test_set: Optional[confloat(ge=0.0, le=1.0)] = None diff --git a/dist/py/context_providers_directory/neb_data_provider.py b/dist/py/context_providers_directory/neb_data_provider.py new file mode 100644 index 000000000..9f47f36d6 --- /dev/null +++ b/dist/py/context_providers_directory/neb_data_provider.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/neb_data_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class NEBDataProviderSchema(BaseModel): + nImages: Optional[float] = None diff --git a/dist/py/context_providers_directory/non_collinear_magnetization_context_provider.py b/dist/py/context_providers_directory/non_collinear_magnetization_context_provider.py new file mode 100644 index 000000000..509865d15 --- /dev/null +++ b/dist/py/context_providers_directory/non_collinear_magnetization_context_provider.py @@ -0,0 +1,58 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/non_collinear_magnetization_context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class StartingMagnetizationItem(BaseModel): + index: Optional[int] = Field(None, title="Index") + atomicSpecies: Optional[str] = Field(None, title="Atomic species") + value: Optional[float] = Field(None, title="Starting magnetization") + + +class SpinAngle(BaseModel): + index: Optional[int] = Field(None, title="Index") + atomicSpecies: Optional[str] = Field(None, title="Atomic species") + angle1: Optional[float] = Field(None, title="Angle1 (deg)") + angle2: Optional[float] = Field(None, title="Angle2 (deg)") + + +class ConstrainType(Enum): + none = "none" + total = "total" + atomic = "atomic" + total_direction = "total direction" + atomic_direction = "atomic direction" + + +class ConstrainedMagnetization(BaseModel): + constrainType: Optional[ConstrainType] = Field(None, title="Constrain type") + lambda_: Optional[float] = Field(None, alias="lambda", title="lambda") + + +class FixedMagnetization(BaseModel): + x: Optional[float] = Field(None, title="X-component") + y: Optional[float] = Field(None, title="Y-component") + z: Optional[float] = Field(None, title="Z-component") + + +class NonCollinearMagnetizationContextProviderSchema(BaseModel): + isExistingChargeDensity: Optional[bool] = Field(None, title="Use existing charge density") + isStartingMagnetization: Optional[bool] = Field(None, title="Set starting magnetization") + startingMagnetization: Optional[List[StartingMagnetizationItem]] = None + isArbitrarySpinAngle: Optional[bool] = Field(None, title="Set arbitrary spin angle") + isArbitrarySpinDirection: Optional[bool] = Field(None, title="Set arbitrary spin direction") + lforcet: Optional[bool] = None + spinAngles: Optional[List[SpinAngle]] = None + isConstrainedMagnetization: Optional[bool] = Field(None, title="Set constrained magnetization") + constrainedMagnetization: Optional[ConstrainedMagnetization] = None + isFixedMagnetization: Optional[bool] = Field( + None, title="Set Fixed magnetization (only applicable to constrained magnetization of 'total' type)" + ) + fixedMagnetization: Optional[FixedMagnetization] = None diff --git a/dist/py/context_providers_directory/planewave_cutoffs_context_provider.py b/dist/py/context_providers_directory/planewave_cutoffs_context_provider.py new file mode 100644 index 000000000..490760525 --- /dev/null +++ b/dist/py/context_providers_directory/planewave_cutoffs_context_provider.py @@ -0,0 +1,14 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/planewave_cutoffs_context_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class PlanewaveCutoffsContextProviderSchema(BaseModel): + wavefunction: Optional[float] = None + density: Optional[float] = None diff --git a/dist/py/context_providers_directory/points_grid_data_provider.py b/dist/py/context_providers_directory/points_grid_data_provider.py new file mode 100644 index 000000000..2d5ea36fa --- /dev/null +++ b/dist/py/context_providers_directory/points_grid_data_provider.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/points_grid_data_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class GridMetricType(Enum): + KPPRA = "KPPRA" + spacing = "spacing" + + +class PointsGridDataProviderSchema(BaseModel): + dimensions: List[float] = Field(..., max_length=3, min_length=3) + shifts: Optional[List[float]] = Field(None, max_length=3, min_length=3) + reciprocalVectorRatios: Optional[List[float]] = Field(None, max_length=3, min_length=3) + gridMetricType: GridMetricType + gridMetricValue: float + preferGridMetric: Optional[bool] = None diff --git a/dist/py/context_providers_directory/points_path_data_provider.py b/dist/py/context_providers_directory/points_path_data_provider.py new file mode 100644 index 000000000..f1a66fafd --- /dev/null +++ b/dist/py/context_providers_directory/points_path_data_provider.py @@ -0,0 +1,22 @@ +# generated by datamodel-codegen: +# filename: context_providers_directory/points_path_data_provider.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import BaseModel, Field, RootModel + + +class PointsPathDataProviderSchemaItem(BaseModel): + point: str + steps: int + coordinates: List[float] + + +class PointsPathDataProviderSchema(RootModel[List[PointsPathDataProviderSchemaItem]]): + root: List[PointsPathDataProviderSchemaItem] = Field(..., min_length=1, title="Points Path Data Provider Schema") + """ + Path in reciprocal space for band structure calculations. + """ diff --git a/dist/py/core/__init__.py b/dist/py/core/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/core/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/core/abstract/_2d_data.py b/dist/py/core/abstract/_2d_data.py new file mode 100644 index 000000000..1ab0cfa8d --- /dev/null +++ b/dist/py/core/abstract/_2d_data.py @@ -0,0 +1,17 @@ +# generated by datamodel-codegen: +# filename: core/abstract/2d_data.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Union + +from pydantic import BaseModel, Field + + +class Field2DimensionDataSchema(BaseModel): + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") diff --git a/dist/py/core/abstract/_2d_plot.py b/dist/py/core/abstract/_2d_plot.py new file mode 100644 index 000000000..b5e40f583 --- /dev/null +++ b/dist/py/core/abstract/_2d_plot.py @@ -0,0 +1,30 @@ +# generated by datamodel-codegen: +# filename: core/abstract/2d_plot.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional, Union + +from pydantic import BaseModel, Field + + +class AxisSchema(BaseModel): + label: str + """ + label of an axis object + """ + units: Optional[str] = None + """ + units for an axis + """ + + +class Field2DimensionPlotSchema(BaseModel): + xAxis: AxisSchema = Field(..., title="axis schema") + yAxis: AxisSchema = Field(..., title="axis schema") + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") diff --git a/dist/py/core/abstract/_3d_grid.py b/dist/py/core/abstract/_3d_grid.py new file mode 100644 index 000000000..6621ac7c7 --- /dev/null +++ b/dist/py/core/abstract/_3d_grid.py @@ -0,0 +1,14 @@ +# generated by datamodel-codegen: +# filename: core/abstract/3d_grid.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import BaseModel, Field + + +class Field3DimensionalGridSchema(BaseModel): + dimensions: List[float] = Field(..., max_length=3, min_length=3, title="array of 3 number elements schema") + shifts: List[float] = Field(..., max_length=3, min_length=3, title="array of 3 number elements schema") diff --git a/dist/py/core/abstract/__init__.py b/dist/py/core/abstract/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/core/abstract/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/core/abstract/coordinate_2d.py b/dist/py/core/abstract/coordinate_2d.py new file mode 100644 index 000000000..6aa657021 --- /dev/null +++ b/dist/py/core/abstract/coordinate_2d.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: core/abstract/coordinate_2d.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import Field, RootModel + + +class Coordinate2dSchema(RootModel[List[float]]): + root: List[float] = Field(..., max_length=2, min_length=2, title="coordinate 2d schema") diff --git a/dist/py/core/abstract/coordinate_3d.py b/dist/py/core/abstract/coordinate_3d.py new file mode 100644 index 000000000..3b0f81c7e --- /dev/null +++ b/dist/py/core/abstract/coordinate_3d.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: core/abstract/coordinate_3d.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import Field, RootModel + + +class Coordinate3dSchema(RootModel[List[float]]): + root: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") diff --git a/dist/py/core/abstract/matrix_3x3.py b/dist/py/core/abstract/matrix_3x3.py new file mode 100644 index 000000000..342d457f3 --- /dev/null +++ b/dist/py/core/abstract/matrix_3x3.py @@ -0,0 +1,17 @@ +# generated by datamodel-codegen: +# filename: core/abstract/matrix_3x3.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import Field, RootModel + + +class ArrayOf3NumberElementsSchema(RootModel[List[float]]): + root: List[float] = Field(..., title="array of 3 number elements schema") + + +class Matrix3x3Schema(RootModel[List[ArrayOf3NumberElementsSchema]]): + root: List[ArrayOf3NumberElementsSchema] = Field(..., max_length=3, min_length=3, title="matrix 3x3 schema") diff --git a/dist/py/core/abstract/vector_2d.py b/dist/py/core/abstract/vector_2d.py new file mode 100644 index 000000000..4d4cb032e --- /dev/null +++ b/dist/py/core/abstract/vector_2d.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: core/abstract/vector_2d.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import Field, RootModel + + +class Vector2dSchema(RootModel[List[float]]): + root: List[float] = Field(..., max_length=2, min_length=2, title="vector 2d schema") diff --git a/dist/py/core/abstract/vector_3d.py b/dist/py/core/abstract/vector_3d.py new file mode 100644 index 000000000..06bc7de8e --- /dev/null +++ b/dist/py/core/abstract/vector_3d.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: core/abstract/vector_3d.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import Field, RootModel + + +class Vector3dSchema(RootModel[List[float]]): + root: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") diff --git a/dist/py/core/abstract/vector_boolean_3d.py b/dist/py/core/abstract/vector_boolean_3d.py new file mode 100644 index 000000000..a5f6c7c49 --- /dev/null +++ b/dist/py/core/abstract/vector_boolean_3d.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: core/abstract/vector_boolean_3d.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import Field, RootModel + + +class ESSE(RootModel[List[bool]]): + root: List[bool] = Field(..., title="vector boolean 3d schema") diff --git a/dist/py/core/primitive/_1d_data_series.py b/dist/py/core/primitive/_1d_data_series.py new file mode 100644 index 000000000..67bfb5162 --- /dev/null +++ b/dist/py/core/primitive/_1d_data_series.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: core/primitive/1d_data_series.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import Field, RootModel + + +class Field1DimensionDataSeriesSchema(RootModel[List[List[float]]]): + root: List[List[float]] = Field(..., title="1 dimension data series schema") diff --git a/dist/py/core/primitive/__init__.py b/dist/py/core/primitive/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/core/primitive/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/core/primitive/array_of_2_numbers.py b/dist/py/core/primitive/array_of_2_numbers.py new file mode 100644 index 000000000..3d4db374e --- /dev/null +++ b/dist/py/core/primitive/array_of_2_numbers.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: core/primitive/array_of_2_numbers.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import Field, RootModel + + +class ArrayOf2NumberElementsSchema(RootModel[List[float]]): + root: List[float] = Field(..., max_length=2, min_length=2, title="array of 2 number elements schema") diff --git a/dist/py/core/primitive/array_of_3_booleans.py b/dist/py/core/primitive/array_of_3_booleans.py new file mode 100644 index 000000000..847933ba1 --- /dev/null +++ b/dist/py/core/primitive/array_of_3_booleans.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: core/primitive/array_of_3_booleans.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import Field, RootModel + + +class ArrayOf3BooleanElementsSchema(RootModel[List[bool]]): + root: List[bool] = Field(..., max_length=3, min_length=3, title="array of 3 boolean elements schema") diff --git a/dist/py/core/primitive/array_of_3_integers.py b/dist/py/core/primitive/array_of_3_integers.py new file mode 100644 index 000000000..4bd64edbc --- /dev/null +++ b/dist/py/core/primitive/array_of_3_integers.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: core/primitive/array_of_3_integers.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import Field, RootModel + + +class ArrayOf3IntegerElementsSchema(RootModel[List[int]]): + root: List[int] = Field(..., max_length=3, min_length=3, title="array of 3 integer elements schema") diff --git a/dist/py/core/primitive/array_of_3_numbers.py b/dist/py/core/primitive/array_of_3_numbers.py new file mode 100644 index 000000000..25b44ce52 --- /dev/null +++ b/dist/py/core/primitive/array_of_3_numbers.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: core/primitive/array_of_3_numbers.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import Field, RootModel + + +class ArrayOf3NumberElementsSchema(RootModel[List[float]]): + root: List[float] = Field(..., max_length=3, min_length=3, title="array of 3 number elements schema") diff --git a/dist/py/core/primitive/array_of_ids.py b/dist/py/core/primitive/array_of_ids.py new file mode 100644 index 000000000..de4be7f70 --- /dev/null +++ b/dist/py/core/primitive/array_of_ids.py @@ -0,0 +1,23 @@ +# generated by datamodel-codegen: +# filename: core/primitive/array_of_ids.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import BaseModel, Field, RootModel + + +class ObjectWithId(BaseModel): + id: int + """ + integer id of this entry + """ + + +class ArrayOfIds(RootModel[List[ObjectWithId]]): + root: List[ObjectWithId] = Field(..., title="array of ids") + """ + array of objects containing integer id each + """ diff --git a/dist/py/core/primitive/array_of_strings.py b/dist/py/core/primitive/array_of_strings.py new file mode 100644 index 000000000..80bc9238d --- /dev/null +++ b/dist/py/core/primitive/array_of_strings.py @@ -0,0 +1,16 @@ +# generated by datamodel-codegen: +# filename: core/primitive/array_of_strings.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import Field, RootModel + + +class ArrayOfStrings(RootModel[List[str]]): + root: List[str] = Field(..., title="array of strings") + """ + array of strings, e.g. metadata tags + """ diff --git a/dist/py/core/primitive/axis.py b/dist/py/core/primitive/axis.py new file mode 100644 index 000000000..12d185b5a --- /dev/null +++ b/dist/py/core/primitive/axis.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: core/primitive/axis.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class AxisSchema(BaseModel): + label: str + """ + label of an axis object + """ + units: Optional[str] = None + """ + units for an axis + """ diff --git a/dist/py/core/primitive/axis_3d_names_enum.py b/dist/py/core/primitive/axis_3d_names_enum.py new file mode 100644 index 000000000..695025926 --- /dev/null +++ b/dist/py/core/primitive/axis_3d_names_enum.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: core/primitive/axis_3d_names_enum.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + + +class AxisEnum(Enum): + x = "x" + y = "y" + z = "z" diff --git a/dist/py/core/primitive/group_info.py b/dist/py/core/primitive/group_info.py new file mode 100644 index 000000000..c8b076c3c --- /dev/null +++ b/dist/py/core/primitive/group_info.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: core/primitive/group_info.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class GroupInfoSchemaForNodesInAGraph(BaseModel): + groupName: Optional[str] = None + """ + Human-readable name of group of nodes + """ + groupId: Optional[str] = None + """ + Unique identifier of the group a node belongs to + """ diff --git a/dist/py/core/primitive/integer_one_or_zero.py b/dist/py/core/primitive/integer_one_or_zero.py new file mode 100644 index 000000000..d62278265 --- /dev/null +++ b/dist/py/core/primitive/integer_one_or_zero.py @@ -0,0 +1,11 @@ +# generated by datamodel-codegen: +# filename: core/primitive/integer_one_or_zero.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import Field, RootModel, conint + + +class IntegerOneOrZero(RootModel[conint(ge=0, le=1)]): + root: conint(ge=0, le=1) = Field(..., title="integer one or zero") diff --git a/dist/py/core/primitive/integer_positive_single_digit.py b/dist/py/core/primitive/integer_positive_single_digit.py new file mode 100644 index 000000000..52feed010 --- /dev/null +++ b/dist/py/core/primitive/integer_positive_single_digit.py @@ -0,0 +1,11 @@ +# generated by datamodel-codegen: +# filename: core/primitive/integer_positive_single_digit.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import Field, RootModel, conint + + +class IntegerPositiveSingleDigit(RootModel[conint(ge=1, le=9)]): + root: conint(ge=1, le=9) = Field(..., title="integer positive single digit") diff --git a/dist/py/core/primitive/linked_list/__init__.py b/dist/py/core/primitive/linked_list/__init__.py new file mode 100644 index 000000000..0f984c77e --- /dev/null +++ b/dist/py/core/primitive/linked_list/__init__.py @@ -0,0 +1,33 @@ +# generated by datamodel-codegen: +# filename: core/primitive/linked_list.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, List, Union + +from pydantic import Field, RootModel + + +class BasicNodeSchemaLinkedList(RootModel[Dict[str, Any]]): + root: Dict[str, Any] = Field(..., title="basic node schema (linked list)") + + +class NamedNodeSchema(RootModel[Dict[str, Any]]): + root: Dict[str, Any] = Field(..., title="Named node schema") + + +class NamedNodeInGroupSchema(RootModel[Dict[str, Any]]): + root: Dict[str, Any] = Field(..., title="Named node in group schema") + + +class TypedNodeSchema(RootModel[Dict[str, Any]]): + root: Dict[str, Any] = Field(..., title="Typed node schema") + + +class LinkedListSchema( + RootModel[List[Union[BasicNodeSchemaLinkedList, NamedNodeSchema, NamedNodeInGroupSchema, TypedNodeSchema]]] +): + root: List[Union[BasicNodeSchemaLinkedList, NamedNodeSchema, NamedNodeInGroupSchema, TypedNodeSchema]] = Field( + ..., title="linked list schema" + ) diff --git a/dist/py/core/primitive/linked_list/base_node.py b/dist/py/core/primitive/linked_list/base_node.py new file mode 100644 index 000000000..28e00c7d3 --- /dev/null +++ b/dist/py/core/primitive/linked_list/base_node.py @@ -0,0 +1,31 @@ +# generated by datamodel-codegen: +# filename: core/primitive/linked_list/base_node.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class BasicNodeSchemaLinkedList(BaseModel): + next: Optional[str] = None + """ + Flowchart ID of next node + """ + head: Optional[bool] = None + """ + Whether node is head node or not + """ + flowchartId: str + """ + Unique flowchart ID of node + """ + + +class FlowchartId(BaseModel): + flowchartId: str + """ + Unique flowchart ID of node + """ diff --git a/dist/py/core/primitive/linked_list/named_node.py b/dist/py/core/primitive/linked_list/named_node.py new file mode 100644 index 000000000..b11e1fb74 --- /dev/null +++ b/dist/py/core/primitive/linked_list/named_node.py @@ -0,0 +1,35 @@ +# generated by datamodel-codegen: +# filename: core/primitive/linked_list/named_node.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class NamedNodeSchema(BaseModel): + next: Optional[str] = None + """ + Flowchart ID of next node + """ + head: Optional[bool] = None + """ + Whether node is head node or not + """ + flowchartId: str + """ + Unique flowchart ID of node + """ + name: str + """ + entity name + """ + + +class FlowchartId(BaseModel): + flowchartId: str + """ + Unique flowchart ID of node + """ diff --git a/dist/py/core/primitive/linked_list/named_node_in_group.py b/dist/py/core/primitive/linked_list/named_node_in_group.py new file mode 100644 index 000000000..d70a0623b --- /dev/null +++ b/dist/py/core/primitive/linked_list/named_node_in_group.py @@ -0,0 +1,43 @@ +# generated by datamodel-codegen: +# filename: core/primitive/linked_list/named_node_in_group.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class NamedNodeInGroupSchema(BaseModel): + next: Optional[str] = None + """ + Flowchart ID of next node + """ + head: Optional[bool] = None + """ + Whether node is head node or not + """ + flowchartId: str + """ + Unique flowchart ID of node + """ + name: str + """ + entity name + """ + groupName: Optional[str] = None + """ + Human-readable name of group of nodes + """ + groupId: Optional[str] = None + """ + Unique identifier of the group a node belongs to + """ + + +class FlowchartId(BaseModel): + flowchartId: str + """ + Unique flowchart ID of node + """ diff --git a/dist/py/core/primitive/linked_list/node_with_type.py b/dist/py/core/primitive/linked_list/node_with_type.py new file mode 100644 index 000000000..a12e030c1 --- /dev/null +++ b/dist/py/core/primitive/linked_list/node_with_type.py @@ -0,0 +1,32 @@ +# generated by datamodel-codegen: +# filename: core/primitive/linked_list/node_with_type.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class TypedNodeSchema(BaseModel): + type: Optional[str] = None + next: Optional[str] = None + """ + Flowchart ID of next node + """ + head: Optional[bool] = None + """ + Whether node is head node or not + """ + flowchartId: str + """ + Unique flowchart ID of node + """ + + +class FlowchartId(BaseModel): + flowchartId: str + """ + Unique flowchart ID of node + """ diff --git a/dist/py/core/primitive/object_with_id.py b/dist/py/core/primitive/object_with_id.py new file mode 100644 index 000000000..c9273f687 --- /dev/null +++ b/dist/py/core/primitive/object_with_id.py @@ -0,0 +1,14 @@ +# generated by datamodel-codegen: +# filename: core/primitive/object_with_id.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import BaseModel + + +class ObjectWithId(BaseModel): + id: int + """ + integer id of this entry + """ diff --git a/dist/py/core/primitive/object_with_id_and_value.py b/dist/py/core/primitive/object_with_id_and_value.py new file mode 100644 index 000000000..08cd5c48a --- /dev/null +++ b/dist/py/core/primitive/object_with_id_and_value.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: core/primitive/object_with_id_and_value.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import BaseModel + + +class ObjectWithIdAndValueSchema(BaseModel): + value: Any + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ diff --git a/dist/py/core/primitive/scalar.py b/dist/py/core/primitive/scalar.py new file mode 100644 index 000000000..dbf7394af --- /dev/null +++ b/dist/py/core/primitive/scalar.py @@ -0,0 +1,11 @@ +# generated by datamodel-codegen: +# filename: core/primitive/scalar.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import BaseModel + + +class ScalarSchema(BaseModel): + value: float diff --git a/dist/py/core/primitive/slugified_entry.py b/dist/py/core/primitive/slugified_entry.py new file mode 100644 index 000000000..e7b48216d --- /dev/null +++ b/dist/py/core/primitive/slugified_entry.py @@ -0,0 +1,18 @@ +# generated by datamodel-codegen: +# filename: core/primitive/slugified_entry.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import BaseModel + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ diff --git a/dist/py/core/primitive/slugified_entry_or_slug.py b/dist/py/core/primitive/slugified_entry_or_slug.py new file mode 100644 index 000000000..b537cf88a --- /dev/null +++ b/dist/py/core/primitive/slugified_entry_or_slug.py @@ -0,0 +1,27 @@ +# generated by datamodel-codegen: +# filename: core/primitive/slugified_entry_or_slug.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Union + +from pydantic import BaseModel, Field, RootModel + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class ESSE(RootModel[Union[SlugifiedEntry, str]]): + root: Union[SlugifiedEntry, str] = Field(..., title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/core/primitive/string.py b/dist/py/core/primitive/string.py new file mode 100644 index 000000000..b920c315c --- /dev/null +++ b/dist/py/core/primitive/string.py @@ -0,0 +1,11 @@ +# generated by datamodel-codegen: +# filename: core/primitive/string.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import BaseModel + + +class PrimitiveString(BaseModel): + value: str diff --git a/dist/py/core/reference/__init__.py b/dist/py/core/reference/__init__.py new file mode 100644 index 000000000..f58fa2149 --- /dev/null +++ b/dist/py/core/reference/__init__.py @@ -0,0 +1,260 @@ +# generated by datamodel-codegen: +# filename: core/reference.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field, RootModel, constr + + +class Type(Enum): + exabyte = "exabyte" + + +class EntityReferenceSchema(BaseModel): + id: str = Field(..., alias="_id") + """ + entity identity + """ + cls: Optional[str] = None + """ + entity class + """ + slug: Optional[str] = None + """ + entity slug + """ + + +class InfoForCharacteristicObtainedByExabyteCalculation(BaseModel): + type: Optional[Type] = None + title: constr(max_length=300) + """ + Human-readable title of the job + """ + id: str = Field(..., alias="_id") + """ + job identifier + """ + owner: EntityReferenceSchema = Field(..., title="entity reference schema") + + +class Type93(Enum): + experiment = "experiment" + + +class ExperimentAuthorSchema(BaseModel): + first: str + middle: Optional[str] = None + last: str + affiliation: Optional[str] = None + + +class ScalarItem(BaseModel): + value: Optional[str] = None + + +class ConditionSchema(BaseModel): + units: Optional[str] = None + """ + condition unit + """ + scalar: Optional[List[ScalarItem]] = None + """ + array of condition values + """ + name: str + """ + human-readable name of the condition + """ + + +class LocationSchema(BaseModel): + latitude: float + """ + location latitude + """ + longitude: float + """ + location longitude + """ + + +class Type94(Enum): + literature = "literature" + + +class PagesSchema(BaseModel): + start: str + end: Optional[str] = None + + +class LiteratureReferenceSchema(BaseModel): + type: Optional[Type94] = None + doi: Optional[str] = None + """ + Digital Object Identifier of the reference. + """ + isbn: Optional[str] = None + """ + International Standard Book Number of the reference. + """ + issn: Optional[str] = None + """ + International Standard Serial Number of the reference. + """ + url: Optional[str] = None + """ + Internet address of the reference. + """ + title: Optional[str] = None + """ + Title of the work. + """ + publisher: Optional[str] = None + """ + Publisher of the work. + """ + journal: Optional[str] = None + """ + Journal in which the work appeared. + """ + volume: Optional[str] = None + """ + Volume of the series in which the work appeared. + """ + year: Optional[str] = None + """ + Year in which the reference was published. + """ + issue: Optional[str] = None + """ + Issue of the collection in which the work appeared. + """ + pages: Optional[PagesSchema] = Field(None, title="pages schema") + """ + Start and end pages of the work. + """ + authors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of authors of the work. + """ + editors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of editors of the work. + """ + reference: Optional[List[Dict[str, Any]]] = None + """ + References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published. + """ + + +class InfoForCharacteristicObtainedByExperiment(BaseModel): + type: Optional[Type93] = None + authors: List[ExperimentAuthorSchema] + """ + experiment authors + """ + title: str + """ + experiment title + """ + method: str + """ + method used in experiment + """ + conditions: List[ConditionSchema] + location: Optional[LocationSchema] = Field(None, title="location schema") + timestamp: float + """ + epoch time. + """ + note: Optional[str] = None + """ + Note about experiment + """ + references: Optional[List[LiteratureReferenceSchema]] = None + """ + references to literature articles + """ + + +class LiteratureReferenceSchema12(BaseModel): + type: Optional[Type94] = None + doi: Optional[str] = None + """ + Digital Object Identifier of the reference. + """ + isbn: Optional[str] = None + """ + International Standard Book Number of the reference. + """ + issn: Optional[str] = None + """ + International Standard Serial Number of the reference. + """ + url: Optional[str] = None + """ + Internet address of the reference. + """ + title: Optional[str] = None + """ + Title of the work. + """ + publisher: Optional[str] = None + """ + Publisher of the work. + """ + journal: Optional[str] = None + """ + Journal in which the work appeared. + """ + volume: Optional[str] = None + """ + Volume of the series in which the work appeared. + """ + year: Optional[str] = None + """ + Year in which the reference was published. + """ + issue: Optional[str] = None + """ + Issue of the collection in which the work appeared. + """ + pages: Optional[PagesSchema] = Field(None, title="pages schema") + """ + Start and end pages of the work. + """ + authors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of authors of the work. + """ + editors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of editors of the work. + """ + reference: Optional[List[Dict[str, Any]]] = None + """ + References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published. + """ + + +class ESSE( + RootModel[ + Union[ + InfoForCharacteristicObtainedByExabyteCalculation, + InfoForCharacteristicObtainedByExperiment, + LiteratureReferenceSchema12, + ] + ] +): + root: Union[ + InfoForCharacteristicObtainedByExabyteCalculation, + InfoForCharacteristicObtainedByExperiment, + LiteratureReferenceSchema12, + ] = Field( + ..., title="reference schema (using `anyOf` instead of `oneOf` below b/c current reference schemas overlap)" + ) diff --git a/dist/py/core/reference/exabyte.py b/dist/py/core/reference/exabyte.py new file mode 100644 index 000000000..b5f525755 --- /dev/null +++ b/dist/py/core/reference/exabyte.py @@ -0,0 +1,18 @@ +# generated by datamodel-codegen: +# filename: core/reference/exabyte.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import BaseModel + + +class ESSE(BaseModel): + jobId: str + """ + Job's identity + """ + unitId: str + """ + Id of the unit that extracted the result + """ diff --git a/dist/py/core/reference/experiment/__init__.py b/dist/py/core/reference/experiment/__init__.py new file mode 100644 index 000000000..4cc721328 --- /dev/null +++ b/dist/py/core/reference/experiment/__init__.py @@ -0,0 +1,150 @@ +# generated by datamodel-codegen: +# filename: core/reference/experiment.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel, Field + + +class Type(Enum): + experiment = "experiment" + + +class ExperimentAuthorSchema(BaseModel): + first: str + middle: Optional[str] = None + last: str + affiliation: Optional[str] = None + + +class ScalarItem(BaseModel): + value: Optional[str] = None + + +class ConditionSchema(BaseModel): + units: Optional[str] = None + """ + condition unit + """ + scalar: Optional[List[ScalarItem]] = None + """ + array of condition values + """ + name: str + """ + human-readable name of the condition + """ + + +class LocationSchema(BaseModel): + latitude: float + """ + location latitude + """ + longitude: float + """ + location longitude + """ + + +class Type63(Enum): + literature = "literature" + + +class PagesSchema(BaseModel): + start: str + end: Optional[str] = None + + +class LiteratureReferenceSchema(BaseModel): + type: Optional[Type63] = None + doi: Optional[str] = None + """ + Digital Object Identifier of the reference. + """ + isbn: Optional[str] = None + """ + International Standard Book Number of the reference. + """ + issn: Optional[str] = None + """ + International Standard Serial Number of the reference. + """ + url: Optional[str] = None + """ + Internet address of the reference. + """ + title: Optional[str] = None + """ + Title of the work. + """ + publisher: Optional[str] = None + """ + Publisher of the work. + """ + journal: Optional[str] = None + """ + Journal in which the work appeared. + """ + volume: Optional[str] = None + """ + Volume of the series in which the work appeared. + """ + year: Optional[str] = None + """ + Year in which the reference was published. + """ + issue: Optional[str] = None + """ + Issue of the collection in which the work appeared. + """ + pages: Optional[PagesSchema] = Field(None, title="pages schema") + """ + Start and end pages of the work. + """ + authors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of authors of the work. + """ + editors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of editors of the work. + """ + reference: Optional[List[Dict[str, Any]]] = None + """ + References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published. + """ + + +class InfoForCharacteristicObtainedByExperiment(BaseModel): + type: Optional[Type] = None + authors: List[ExperimentAuthorSchema] + """ + experiment authors + """ + title: str + """ + experiment title + """ + method: str + """ + method used in experiment + """ + conditions: List[ConditionSchema] + location: Optional[LocationSchema] = Field(None, title="location schema") + timestamp: float + """ + epoch time. + """ + note: Optional[str] = None + """ + Note about experiment + """ + references: Optional[List[LiteratureReferenceSchema]] = None + """ + references to literature articles + """ diff --git a/dist/py/core/reference/experiment/condition.py b/dist/py/core/reference/experiment/condition.py new file mode 100644 index 000000000..0def1a0dc --- /dev/null +++ b/dist/py/core/reference/experiment/condition.py @@ -0,0 +1,28 @@ +# generated by datamodel-codegen: +# filename: core/reference/experiment/condition.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel + + +class ScalarItem(BaseModel): + value: Optional[str] = None + + +class ConditionSchema(BaseModel): + units: Optional[str] = None + """ + condition unit + """ + scalar: Optional[List[ScalarItem]] = None + """ + array of condition values + """ + name: str + """ + human-readable name of the condition + """ diff --git a/dist/py/core/reference/experiment/location.py b/dist/py/core/reference/experiment/location.py new file mode 100644 index 000000000..7ae18d64f --- /dev/null +++ b/dist/py/core/reference/experiment/location.py @@ -0,0 +1,18 @@ +# generated by datamodel-codegen: +# filename: core/reference/experiment/location.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import BaseModel + + +class LocationSchema(BaseModel): + latitude: float + """ + location latitude + """ + longitude: float + """ + location longitude + """ diff --git a/dist/py/core/reference/literature/__init__.py b/dist/py/core/reference/literature/__init__.py new file mode 100644 index 000000000..9f33941b1 --- /dev/null +++ b/dist/py/core/reference/literature/__init__.py @@ -0,0 +1,86 @@ +# generated by datamodel-codegen: +# filename: core/reference/literature.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel, Field + + +class Type(Enum): + literature = "literature" + + +class PagesSchema(BaseModel): + start: str + end: Optional[str] = None + + +class ExperimentAuthorSchema(BaseModel): + first: str + middle: Optional[str] = None + last: str + affiliation: Optional[str] = None + + +class LiteratureReferenceSchema(BaseModel): + type: Optional[Type] = None + doi: Optional[str] = None + """ + Digital Object Identifier of the reference. + """ + isbn: Optional[str] = None + """ + International Standard Book Number of the reference. + """ + issn: Optional[str] = None + """ + International Standard Serial Number of the reference. + """ + url: Optional[str] = None + """ + Internet address of the reference. + """ + title: Optional[str] = None + """ + Title of the work. + """ + publisher: Optional[str] = None + """ + Publisher of the work. + """ + journal: Optional[str] = None + """ + Journal in which the work appeared. + """ + volume: Optional[str] = None + """ + Volume of the series in which the work appeared. + """ + year: Optional[str] = None + """ + Year in which the reference was published. + """ + issue: Optional[str] = None + """ + Issue of the collection in which the work appeared. + """ + pages: Optional[PagesSchema] = Field(None, title="pages schema") + """ + Start and end pages of the work. + """ + authors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of authors of the work. + """ + editors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of editors of the work. + """ + reference: Optional[List[Dict[str, Any]]] = None + """ + References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published. + """ diff --git a/dist/py/core/reference/literature/name.py b/dist/py/core/reference/literature/name.py new file mode 100644 index 000000000..152c77ed9 --- /dev/null +++ b/dist/py/core/reference/literature/name.py @@ -0,0 +1,16 @@ +# generated by datamodel-codegen: +# filename: core/reference/literature/name.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class ExperimentAuthorSchema(BaseModel): + first: str + middle: Optional[str] = None + last: str + affiliation: Optional[str] = None diff --git a/dist/py/core/reference/literature/pages.py b/dist/py/core/reference/literature/pages.py new file mode 100644 index 000000000..5d20d5357 --- /dev/null +++ b/dist/py/core/reference/literature/pages.py @@ -0,0 +1,14 @@ +# generated by datamodel-codegen: +# filename: core/reference/literature/pages.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class PagesSchema(BaseModel): + start: str + end: Optional[str] = None diff --git a/dist/py/core/reference/modeling/__init__.py b/dist/py/core/reference/modeling/__init__.py new file mode 100644 index 000000000..15afefd21 --- /dev/null +++ b/dist/py/core/reference/modeling/__init__.py @@ -0,0 +1,49 @@ +# generated by datamodel-codegen: +# filename: core/reference/modeling.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field, RootModel, constr + + +class Type(Enum): + exabyte = "exabyte" + + +class EntityReferenceSchema(BaseModel): + id: str = Field(..., alias="_id") + """ + entity identity + """ + cls: Optional[str] = None + """ + entity class + """ + slug: Optional[str] = None + """ + entity slug + """ + + +class InfoForCharacteristicObtainedByExabyteCalculation(BaseModel): + type: Optional[Type] = None + title: constr(max_length=300) + """ + Human-readable title of the job + """ + id: str = Field(..., alias="_id") + """ + job identifier + """ + owner: EntityReferenceSchema = Field(..., title="entity reference schema") + + +class ESSE(RootModel[InfoForCharacteristicObtainedByExabyteCalculation]): + root: InfoForCharacteristicObtainedByExabyteCalculation = Field( + ..., + title="info for property obtained by modeling, only supports exabyte-originated data atm, but easily extendable", + ) diff --git a/dist/py/core/reference/modeling/exabyte.py b/dist/py/core/reference/modeling/exabyte.py new file mode 100644 index 000000000..c8aea9662 --- /dev/null +++ b/dist/py/core/reference/modeling/exabyte.py @@ -0,0 +1,42 @@ +# generated by datamodel-codegen: +# filename: core/reference/modeling/exabyte.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field, constr + + +class Type(Enum): + exabyte = "exabyte" + + +class EntityReferenceSchema(BaseModel): + id: str = Field(..., alias="_id") + """ + entity identity + """ + cls: Optional[str] = None + """ + entity class + """ + slug: Optional[str] = None + """ + entity slug + """ + + +class InfoForCharacteristicObtainedByExabyteCalculation(BaseModel): + type: Optional[Type] = None + title: constr(max_length=300) + """ + Human-readable title of the job + """ + id: str = Field(..., alias="_id") + """ + job identifier + """ + owner: EntityReferenceSchema = Field(..., title="entity reference schema") diff --git a/dist/py/core/reusable/__init__.py b/dist/py/core/reusable/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/core/reusable/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/core/reusable/atomic_data/__init__.py b/dist/py/core/reusable/atomic_data/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/core/reusable/atomic_data/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/core/reusable/atomic_data/per_orbital.py b/dist/py/core/reusable/atomic_data/per_orbital.py new file mode 100644 index 000000000..27c3120ed --- /dev/null +++ b/dist/py/core/reusable/atomic_data/per_orbital.py @@ -0,0 +1,21 @@ +# generated by datamodel-codegen: +# filename: core/reusable/atomic_data/per_orbital.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, constr + + +class AtomicDataPerOrbital(BaseModel): + id: Optional[int] = None + """ + Site number or index in the lattice + """ + atomicSpecies: Optional[constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$")] = None + """ + Example: Co1, Mn + """ + orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None diff --git a/dist/py/core/reusable/atomic_data/per_orbital_pair.py b/dist/py/core/reusable/atomic_data/per_orbital_pair.py new file mode 100644 index 000000000..aef9d3492 --- /dev/null +++ b/dist/py/core/reusable/atomic_data/per_orbital_pair.py @@ -0,0 +1,34 @@ +# generated by datamodel-codegen: +# filename: core/reusable/atomic_data/per_orbital_pair.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, constr + + +class AtomicDataPerOrbitalPair(BaseModel): + id: Optional[int] = None + """ + Site number or index in the lattice + """ + id2: Optional[int] = None + """ + Site number or index in the lattice of second site + """ + atomicSpecies: Optional[constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$")] = None + """ + Example: Co1, Mn + """ + atomicSpecies2: Optional[constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$")] = None + """ + Example: Co2, O + """ + orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + orbitalName2: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + distance: Optional[float] = None + """ + Distance between two sites in Bohr. + """ diff --git a/dist/py/core/reusable/atomic_data/value_number.py b/dist/py/core/reusable/atomic_data/value_number.py new file mode 100644 index 000000000..baca4df26 --- /dev/null +++ b/dist/py/core/reusable/atomic_data/value_number.py @@ -0,0 +1,16 @@ +# generated by datamodel-codegen: +# filename: core/reusable/atomic_data/value_number.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class AtomicDataNumericProperties(BaseModel): + value: Optional[float] = None + """ + Value related to a specific property, e.g., Hubbard U, V etc. + """ diff --git a/dist/py/core/reusable/atomic_data/value_string.py b/dist/py/core/reusable/atomic_data/value_string.py new file mode 100644 index 000000000..71c2fd5b0 --- /dev/null +++ b/dist/py/core/reusable/atomic_data/value_string.py @@ -0,0 +1,16 @@ +# generated by datamodel-codegen: +# filename: core/reusable/atomic_data/value_string.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class AtomicDataStringProperties(BaseModel): + value: Optional[str] = None + """ + String value specific to atomic data + """ diff --git a/dist/py/core/reusable/atomic_data_per_orbital_numeric.py b/dist/py/core/reusable/atomic_data_per_orbital_numeric.py new file mode 100644 index 000000000..0fc326a13 --- /dev/null +++ b/dist/py/core/reusable/atomic_data_per_orbital_numeric.py @@ -0,0 +1,25 @@ +# generated by datamodel-codegen: +# filename: core/reusable/atomic_data_per_orbital_numeric.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, constr + + +class AtomicDataPerOrbitalNumeric(BaseModel): + id: Optional[int] = None + """ + Site number or index in the lattice + """ + atomicSpecies: Optional[constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$")] = None + """ + Example: Co1, Mn + """ + orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + value: Optional[float] = None + """ + Value related to a specific property, e.g., Hubbard U, V etc. + """ diff --git a/dist/py/core/reusable/atomic_data_per_orbital_pair_numeric.py b/dist/py/core/reusable/atomic_data_per_orbital_pair_numeric.py new file mode 100644 index 000000000..495dc506d --- /dev/null +++ b/dist/py/core/reusable/atomic_data_per_orbital_pair_numeric.py @@ -0,0 +1,38 @@ +# generated by datamodel-codegen: +# filename: core/reusable/atomic_data_per_orbital_pair_numeric.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, constr + + +class AtomicDataPerOrbitalPairNumeric(BaseModel): + id: Optional[int] = None + """ + Site number or index in the lattice + """ + id2: Optional[int] = None + """ + Site number or index in the lattice of second site + """ + atomicSpecies: Optional[constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$")] = None + """ + Example: Co1, Mn + """ + atomicSpecies2: Optional[constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$")] = None + """ + Example: Co2, O + """ + orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + orbitalName2: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + distance: Optional[float] = None + """ + Distance between two sites in Bohr. + """ + value: Optional[float] = None + """ + Value related to a specific property, e.g., Hubbard U, V etc. + """ diff --git a/dist/py/core/reusable/atomic_orbital.py b/dist/py/core/reusable/atomic_orbital.py new file mode 100644 index 000000000..4a0d884ca --- /dev/null +++ b/dist/py/core/reusable/atomic_orbital.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: core/reusable/atomic_orbital.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, confloat, conint, constr + + +class AtomicOrbitalSchema(BaseModel): + orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + orbitalIndex: Optional[conint(ge=1)] = None + principalNumber: Optional[conint(ge=1, le=7)] = None + angularMomentum: Optional[conint(ge=0, le=3)] = None + occupation: Optional[confloat(ge=0.0, le=14.0)] = None + """ + Shell occupation + """ diff --git a/dist/py/core/reusable/atomic_scalars.py b/dist/py/core/reusable/atomic_scalars.py new file mode 100644 index 000000000..e76b37962 --- /dev/null +++ b/dist/py/core/reusable/atomic_scalars.py @@ -0,0 +1,28 @@ +# generated by datamodel-codegen: +# filename: core/reusable/atomic_scalars.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel, Field, RootModel + + +class ScalarSchema(BaseModel): + value: float + + +class ObjectWithId(BaseModel): + value: Optional[ScalarSchema] = Field(None, title="scalar schema") + id: int + """ + integer id of this entry + """ + + +class AtomicScalarsVectorsSchema(RootModel[List[ObjectWithId]]): + root: List[ObjectWithId] = Field(..., title="atomic scalars vectors schema") + """ + array of objects containing integer id each + """ diff --git a/dist/py/core/reusable/atomic_string.py b/dist/py/core/reusable/atomic_string.py new file mode 100644 index 000000000..5d8fb5e09 --- /dev/null +++ b/dist/py/core/reusable/atomic_string.py @@ -0,0 +1,18 @@ +# generated by datamodel-codegen: +# filename: core/reusable/atomic_string.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import BaseModel + + +class AtomicStringSchema(BaseModel): + value: str + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ diff --git a/dist/py/core/reusable/atomic_vector.py b/dist/py/core/reusable/atomic_vector.py new file mode 100644 index 000000000..a2dd214a9 --- /dev/null +++ b/dist/py/core/reusable/atomic_vector.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: core/reusable/atomic_vector.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import BaseModel, Field + + +class AtomicVectorSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ diff --git a/dist/py/core/reusable/atomic_vectors.py b/dist/py/core/reusable/atomic_vectors.py new file mode 100644 index 000000000..0b5f8ef43 --- /dev/null +++ b/dist/py/core/reusable/atomic_vectors.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: core/reusable/atomic_vectors.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import BaseModel, Field, RootModel + + +class AtomicVectorSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class AtomicVectorsSchema(RootModel[List[AtomicVectorSchema]]): + root: List[AtomicVectorSchema] = Field(..., title="atomic vectors schema") diff --git a/dist/py/core/reusable/band_gap.py b/dist/py/core/reusable/band_gap.py new file mode 100644 index 000000000..5e115545c --- /dev/null +++ b/dist/py/core/reusable/band_gap.py @@ -0,0 +1,48 @@ +# generated by datamodel-codegen: +# filename: core/reusable/band_gap.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class Type(Enum): + direct = "direct" + indirect = "indirect" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class BandGapSchema(BaseModel): + kpointConduction: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema") + """ + A k-point is a point in reciprocal space of a crystal. + """ + kpointValence: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema") + """ + A k-point is a point in reciprocal space of a crystal. + """ + eigenvalueConduction: Optional[float] = None + """ + eigenvalue at k-point in conduction band + """ + eigenvalueValence: Optional[float] = None + """ + eigenvalue at k-point in valence band + """ + spin: Optional[float] = None + type: Type + units: Optional[Units] = None + value: float diff --git a/dist/py/core/reusable/categories.py b/dist/py/core/reusable/categories.py new file mode 100644 index 000000000..90456ae5d --- /dev/null +++ b/dist/py/core/reusable/categories.py @@ -0,0 +1,43 @@ +# generated by datamodel-codegen: +# filename: core/reusable/categories.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class ReusableCategoriesSchema(BaseModel): + tier1: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/core/reusable/category_path.py b/dist/py/core/reusable/category_path.py new file mode 100644 index 000000000..ef4a90ecc --- /dev/null +++ b/dist/py/core/reusable/category_path.py @@ -0,0 +1,14 @@ +# generated by datamodel-codegen: +# filename: core/reusable/category_path.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import Field, RootModel + + +class CategoryPathSchema(RootModel[str]): + root: str = Field(..., title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ diff --git a/dist/py/core/reusable/coordinate_conditions/__init__.py b/dist/py/core/reusable/coordinate_conditions/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/core/reusable/coordinate_conditions/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/core/reusable/coordinate_conditions/base.py b/dist/py/core/reusable/coordinate_conditions/base.py new file mode 100644 index 000000000..38779dd77 --- /dev/null +++ b/dist/py/core/reusable/coordinate_conditions/base.py @@ -0,0 +1,21 @@ +# generated by datamodel-codegen: +# filename: core/reusable/coordinate_conditions/base.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel, Field + + +class CoordinateShapeEnum(Enum): + cylinder = "cylinder" + sphere = "sphere" + box = "box" + triangular_prism = "triangular_prism" + plane = "plane" + + +class CoordinateConditionSchema(BaseModel): + shape: CoordinateShapeEnum = Field(..., title="Coordinate Shape Enum") diff --git a/dist/py/core/reusable/coordinate_conditions/box.py b/dist/py/core/reusable/coordinate_conditions/box.py new file mode 100644 index 000000000..f6a980682 --- /dev/null +++ b/dist/py/core/reusable/coordinate_conditions/box.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: core/reusable/coordinate_conditions/box.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Literal + +from pydantic import BaseModel, Field + + +class CoordinateShapeEnum(Enum): + cylinder = "cylinder" + sphere = "sphere" + box = "box" + triangular_prism = "triangular_prism" + plane = "plane" + + +class BoxCoordinateConditionSchema(BaseModel): + shape: Literal["box"] = Field("box", title="Coordinate Shape Enum") + min_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + max_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") diff --git a/dist/py/core/reusable/coordinate_conditions/cylinder.py b/dist/py/core/reusable/coordinate_conditions/cylinder.py new file mode 100644 index 000000000..2cf1e7a4d --- /dev/null +++ b/dist/py/core/reusable/coordinate_conditions/cylinder.py @@ -0,0 +1,25 @@ +# generated by datamodel-codegen: +# filename: core/reusable/coordinate_conditions/cylinder.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Literal + +from pydantic import BaseModel, Field, confloat + + +class CoordinateShapeEnum(Enum): + cylinder = "cylinder" + sphere = "sphere" + box = "box" + triangular_prism = "triangular_prism" + plane = "plane" + + +class CylinderCoordinateConditionSchema(BaseModel): + shape: Literal["cylinder"] = Field("cylinder", title="Coordinate Shape Enum") + radius: confloat(ge=0.0) + min_z: float + max_z: float diff --git a/dist/py/core/reusable/coordinate_conditions/enum.py b/dist/py/core/reusable/coordinate_conditions/enum.py new file mode 100644 index 000000000..14ba9fa78 --- /dev/null +++ b/dist/py/core/reusable/coordinate_conditions/enum.py @@ -0,0 +1,15 @@ +# generated by datamodel-codegen: +# filename: core/reusable/coordinate_conditions/enum.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + + +class CoordinateShapeEnum(Enum): + cylinder = "cylinder" + sphere = "sphere" + box = "box" + triangular_prism = "triangular_prism" + plane = "plane" diff --git a/dist/py/core/reusable/coordinate_conditions/index.py b/dist/py/core/reusable/coordinate_conditions/index.py new file mode 100644 index 000000000..c5850a939 --- /dev/null +++ b/dist/py/core/reusable/coordinate_conditions/index.py @@ -0,0 +1,80 @@ +# generated by datamodel-codegen: +# filename: core/reusable/coordinate_conditions/index.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Literal, Union + +from pydantic import BaseModel, Field, RootModel, confloat + + +class CoordinateShapeEnum(Enum): + cylinder = "cylinder" + sphere = "sphere" + box = "box" + triangular_prism = "triangular_prism" + plane = "plane" + + +class BoxCoordinateConditionSchema(BaseModel): + shape: Literal["box"] = Field("box", title="Coordinate Shape Enum") + min_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + max_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + + +class SphereCoordinateConditionSchema(BaseModel): + shape: Literal["sphere"] = Field("sphere", title="Coordinate Shape Enum") + radius: confloat(ge=0.0) + + +class CylinderCoordinateConditionSchema(BaseModel): + shape: Literal["cylinder"] = Field("cylinder", title="Coordinate Shape Enum") + radius: confloat(ge=0.0) + min_z: float + max_z: float + + +class TriangularPrismCoordinateConditionSchema(BaseModel): + shape: Literal["triangular_prism"] = Field("triangular_prism", title="Coordinate Shape Enum") + position_on_surface_1: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + position_on_surface_2: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + position_on_surface_3: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + min_z: float + max_z: float + + +class PlaneCoordinateConditionSchema(BaseModel): + shape: Literal["plane"] = Field("plane", title="Coordinate Shape Enum") + plane_normal: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + plane_point_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + + +class ESSE( + RootModel[ + Union[ + BoxCoordinateConditionSchema, + SphereCoordinateConditionSchema, + CylinderCoordinateConditionSchema, + TriangularPrismCoordinateConditionSchema, + PlaneCoordinateConditionSchema, + ] + ] +): + root: Union[ + BoxCoordinateConditionSchema, + SphereCoordinateConditionSchema, + CylinderCoordinateConditionSchema, + TriangularPrismCoordinateConditionSchema, + PlaneCoordinateConditionSchema, + ] = Field(..., title="Coordinate Conditions Schema") + """ + Combined schema for all coordinate condition types + """ diff --git a/dist/py/core/reusable/coordinate_conditions/plane.py b/dist/py/core/reusable/coordinate_conditions/plane.py new file mode 100644 index 000000000..442bf622e --- /dev/null +++ b/dist/py/core/reusable/coordinate_conditions/plane.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: core/reusable/coordinate_conditions/plane.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Literal + +from pydantic import BaseModel, Field + + +class CoordinateShapeEnum(Enum): + cylinder = "cylinder" + sphere = "sphere" + box = "box" + triangular_prism = "triangular_prism" + plane = "plane" + + +class PlaneCoordinateConditionSchema(BaseModel): + shape: Literal["plane"] = Field("plane", title="Coordinate Shape Enum") + plane_normal: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + plane_point_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") diff --git a/dist/py/core/reusable/coordinate_conditions/sphere.py b/dist/py/core/reusable/coordinate_conditions/sphere.py new file mode 100644 index 000000000..9a4c90206 --- /dev/null +++ b/dist/py/core/reusable/coordinate_conditions/sphere.py @@ -0,0 +1,23 @@ +# generated by datamodel-codegen: +# filename: core/reusable/coordinate_conditions/sphere.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Literal + +from pydantic import BaseModel, Field, confloat + + +class CoordinateShapeEnum(Enum): + cylinder = "cylinder" + sphere = "sphere" + box = "box" + triangular_prism = "triangular_prism" + plane = "plane" + + +class SphereCoordinateConditionSchema(BaseModel): + shape: Literal["sphere"] = Field("sphere", title="Coordinate Shape Enum") + radius: confloat(ge=0.0) diff --git a/dist/py/core/reusable/coordinate_conditions/triangular_prism.py b/dist/py/core/reusable/coordinate_conditions/triangular_prism.py new file mode 100644 index 000000000..a596d814b --- /dev/null +++ b/dist/py/core/reusable/coordinate_conditions/triangular_prism.py @@ -0,0 +1,33 @@ +# generated by datamodel-codegen: +# filename: core/reusable/coordinate_conditions/triangular_prism.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Literal + +from pydantic import BaseModel, Field + + +class CoordinateShapeEnum(Enum): + cylinder = "cylinder" + sphere = "sphere" + box = "box" + triangular_prism = "triangular_prism" + plane = "plane" + + +class TriangularPrismCoordinateConditionSchema(BaseModel): + shape: Literal["triangular_prism"] = Field("triangular_prism", title="Coordinate Shape Enum") + position_on_surface_1: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + position_on_surface_2: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + position_on_surface_3: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + min_z: float + max_z: float diff --git a/dist/py/core/reusable/dielectric_tensor_component.py b/dist/py/core/reusable/dielectric_tensor_component.py new file mode 100644 index 000000000..ae75a2619 --- /dev/null +++ b/dist/py/core/reusable/dielectric_tensor_component.py @@ -0,0 +1,31 @@ +# generated by datamodel-codegen: +# filename: core/reusable/dielectric_tensor_component.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel + + +class Part(Enum): + real = "real" + imaginary = "imaginary" + + +class DielectricTensor(BaseModel): + part: Part + """ + Real or imaginary part of the dielectric tensor component + """ + spin: Optional[float] = None + frequencies: List[float] + """ + Frequencies + """ + components: List[List[float]] + """ + Matrix with 3 columns, e.g. x, y, z + """ diff --git a/dist/py/core/reusable/energy.py b/dist/py/core/reusable/energy.py new file mode 100644 index 000000000..7df69e1db --- /dev/null +++ b/dist/py/core/reusable/energy.py @@ -0,0 +1,30 @@ +# generated by datamodel-codegen: +# filename: core/reusable/energy.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Union + +from pydantic import BaseModel + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units186(Enum): + eV_A_2 = "eV/A^2" + + +class EnergySchema(BaseModel): + name: str + units: Union[Units, Units186] + value: float diff --git a/dist/py/core/reusable/energy_accuracy_levels/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py b/dist/py/core/reusable/energy_accuracy_levels/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/core/reusable/energy_accuracy_levels/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/core/reusable/energy_accuracy_levels/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py b/dist/py/core/reusable/energy_accuracy_levels/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py new file mode 100644 index 000000000..fe0d355a5 --- /dev/null +++ b/dist/py/core/reusable/energy_accuracy_levels/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py @@ -0,0 +1,31 @@ +# generated by datamodel-codegen: +# filename: core/reusable/energy_accuracy_levels.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class Unit(Enum): + Ry = "Ry" + + +class AccuracyLevel(Enum): + standard = "standard" + low = "low" + high = "high" + + +class UsedForSuggestedWavefunctionAndChargeDensityCutoffs(BaseModel): + unit: Unit + """ + Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry. + """ + accuracy_level: AccuracyLevel + """ + Accuracy level determines suggested scalar value. + """ + value: float diff --git a/dist/py/core/reusable/file_metadata.py b/dist/py/core/reusable/file_metadata.py new file mode 100644 index 000000000..d90bb3b07 --- /dev/null +++ b/dist/py/core/reusable/file_metadata.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: core/reusable/file_metadata.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class FileMetadata(BaseModel): + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + filetype: Optional[str] = None + """ + What kind of file this is, e.g. image / text + """ diff --git a/dist/py/core/reusable/frequency_function_matrix.py b/dist/py/core/reusable/frequency_function_matrix.py new file mode 100644 index 000000000..a5834b07c --- /dev/null +++ b/dist/py/core/reusable/frequency_function_matrix.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: core/reusable/frequency_function_matrix.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel + + +class ESSE(BaseModel): + frequencies: Optional[List[float]] = None + """ + Frequencies + """ + components: Optional[List[List[float]]] = None + """ + Matrix with 3 columns, e.g. x, y, z + """ diff --git a/dist/py/core/reusable/kpoint.py b/dist/py/core/reusable/kpoint.py new file mode 100644 index 000000000..0bf2cb434 --- /dev/null +++ b/dist/py/core/reusable/kpoint.py @@ -0,0 +1,16 @@ +# generated by datamodel-codegen: +# filename: core/reusable/kpoint.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import Field, RootModel + + +class KpointSchema(RootModel[List[float]]): + root: List[float] = Field(..., max_length=3, min_length=3, title="kpoint schema") + """ + A k-point is a point in reciprocal space of a crystal. + """ diff --git a/dist/py/core/reusable/object_storage_container_data.py b/dist/py/core/reusable/object_storage_container_data.py new file mode 100644 index 000000000..c5153ad20 --- /dev/null +++ b/dist/py/core/reusable/object_storage_container_data.py @@ -0,0 +1,36 @@ +# generated by datamodel-codegen: +# filename: core/reusable/object_storage_container_data.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class ObjectStorageContainerData(BaseModel): + CONTAINER: Optional[str] = None + """ + Object storage container for the file + """ + NAME: Optional[str] = None + """ + Name of the file inside the object storage bucket + """ + PROVIDER: Optional[str] = None + """ + Object storage provider + """ + REGION: Optional[str] = None + """ + Region for the object container specified in Container + """ + SIZE: Optional[int] = None + """ + Size of the file in bytes + """ + TIMESTAMP: Optional[str] = None + """ + Unix timestamp showing when the file was last modified + """ diff --git a/dist/py/core/reusable/scalar_with_accuracy_levels.py b/dist/py/core/reusable/scalar_with_accuracy_levels.py new file mode 100644 index 000000000..91ff245c3 --- /dev/null +++ b/dist/py/core/reusable/scalar_with_accuracy_levels.py @@ -0,0 +1,23 @@ +# generated by datamodel-codegen: +# filename: core/reusable/scalar_with_accuracy_levels.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class AccuracyLevel(Enum): + standard = "standard" + low = "low" + high = "high" + + +class ReusableSchemaForScalarValuesWithAccuracyLevels(BaseModel): + accuracy_level: AccuracyLevel + """ + Accuracy level determines suggested scalar value. + """ + value: float diff --git a/dist/py/definitions/__init__.py b/dist/py/definitions/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/definitions/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/definitions/chemical_elements.py b/dist/py/definitions/chemical_elements.py new file mode 100644 index 000000000..81b934787 --- /dev/null +++ b/dist/py/definitions/chemical_elements.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: definitions/chemical_elements.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import Field, RootModel + + +class ChemicalElementSymbols(RootModel[Any]): + root: Any = Field(..., title="Chemical Element Symbols") diff --git a/dist/py/definitions/constants.py b/dist/py/definitions/constants.py new file mode 100644 index 000000000..e50a2d77a --- /dev/null +++ b/dist/py/definitions/constants.py @@ -0,0 +1,40 @@ +# generated by datamodel-codegen: +# filename: definitions/constants.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class FundamentalConstants(BaseModel): + c: Optional[float] = 299792458 + """ + speed of light in vacuum, "units": "m/s" + """ + h: Optional[float] = 6.62607015e-34 + """ + Planck constant, "units": "J s" + """ + e: Optional[float] = 1.602176634e-19 + """ + elementary charge, "units": "C" + """ + G: Optional[float] = 6.6743015e-11 + """ + Newtonian constant of gravitation, "units": "m^3/kg/s^2" + """ + me: Optional[float] = 9.109383713928e-31 + """ + electron mass "units": "kg" + """ + eps0: Optional[float] = 8.854187818814e-12 + """ + vacuum permittivity, "units": "F/m" + """ + mu0: Optional[float] = 1.256637061272e-06 + """ + vacuum permeability, "units": "N/A^2" + """ diff --git a/dist/py/definitions/material.py b/dist/py/definitions/material.py new file mode 100644 index 000000000..107ff7b73 --- /dev/null +++ b/dist/py/definitions/material.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: definitions/material.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import Field, RootModel + + +class MaterialsDefinitions(RootModel[Any]): + root: Any = Field(..., title="Materials Definitions") diff --git a/dist/py/definitions/units.py b/dist/py/definitions/units.py new file mode 100644 index 000000000..89642c2c4 --- /dev/null +++ b/dist/py/definitions/units.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: definitions/units.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import Field, RootModel + + +class AllUnitsDefinitions(RootModel[Any]): + root: Any = Field(..., title="all units definitions") diff --git a/dist/py/element.py b/dist/py/element.py new file mode 100644 index 000000000..0babe34e0 --- /dev/null +++ b/dist/py/element.py @@ -0,0 +1,193 @@ +# generated by datamodel-codegen: +# filename: element.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel + + +class Symbol(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Name(Enum): + atomic_radius = "atomic_radius" + + +class Units(Enum): + km = "km" + m = "m" + cm = "cm" + mm = "mm" + um = "um" + nm = "nm" + angstrom = "angstrom" + a_u_ = "a.u." + bohr = "bohr" + pm = "pm" + + +class AtomicRadius(BaseModel): + name: Name + units: Optional[Units] = None + value: float + + +class Name465(Enum): + electronegativity = "electronegativity" + + +class Electronegativity(BaseModel): + name: Name465 + value: float + + +class Name466(Enum): + ionization_potential = "ionization_potential" + + +class Units184(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class IonizationPotentialElementalPropertySchema(BaseModel): + name: Name466 + units: Units184 + value: float + + +class ElementSchema(BaseModel): + symbol: Optional[Symbol] = None + properties: Optional[List[Union[AtomicRadius, Electronegativity, IonizationPotentialElementalPropertySchema]]] = ( + None + ) + """ + list of elemental properties + """ diff --git a/dist/py/in_memory_entity/__init__.py b/dist/py/in_memory_entity/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/in_memory_entity/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/in_memory_entity/base.py b/dist/py/in_memory_entity/base.py new file mode 100644 index 000000000..9bb155ffd --- /dev/null +++ b/dist/py/in_memory_entity/base.py @@ -0,0 +1,25 @@ +# generated by datamodel-codegen: +# filename: in_memory_entity/base.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, Field + + +class BaseInMemoryEntitySchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ diff --git a/dist/py/in_memory_entity/defaultable.py b/dist/py/in_memory_entity/defaultable.py new file mode 100644 index 000000000..fa8593aec --- /dev/null +++ b/dist/py/in_memory_entity/defaultable.py @@ -0,0 +1,29 @@ +# generated by datamodel-codegen: +# filename: in_memory_entity/defaultable.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, Field + + +class DefaultableInMemoryEntitySchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ diff --git a/dist/py/in_memory_entity/has_consistency_check_has_metadata_named_defaultable.py b/dist/py/in_memory_entity/has_consistency_check_has_metadata_named_defaultable.py new file mode 100644 index 000000000..1a8119d39 --- /dev/null +++ b/dist/py/in_memory_entity/has_consistency_check_has_metadata_named_defaultable.py @@ -0,0 +1,61 @@ +# generated by datamodel-codegen: +# filename: in_memory_entity/has_consistency_check_has_metadata_named_defaultable.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel, Field + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class ConsistencyCheck(BaseModel): + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + name: str + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class HasConsistencyCheckHasMetadataNamedDefaultableInMemoryEntitySchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + metadata: Optional[Dict[str, Any]] = None + consistencyChecks: Optional[List[ConsistencyCheck]] = None diff --git a/dist/py/in_memory_entity/named.py b/dist/py/in_memory_entity/named.py new file mode 100644 index 000000000..ae1e99211 --- /dev/null +++ b/dist/py/in_memory_entity/named.py @@ -0,0 +1,29 @@ +# generated by datamodel-codegen: +# filename: in_memory_entity/named.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, Field + + +class NamedInMemoryEntitySchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ diff --git a/dist/py/in_memory_entity/named_defaultable.py b/dist/py/in_memory_entity/named_defaultable.py new file mode 100644 index 000000000..05200bf23 --- /dev/null +++ b/dist/py/in_memory_entity/named_defaultable.py @@ -0,0 +1,33 @@ +# generated by datamodel-codegen: +# filename: in_memory_entity/named_defaultable.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, Field + + +class NamedDefaultableInMemoryEntitySchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ diff --git a/dist/py/in_memory_entity/named_defaultable_has_metadata.py b/dist/py/in_memory_entity/named_defaultable_has_metadata.py new file mode 100644 index 000000000..fb18b0e54 --- /dev/null +++ b/dist/py/in_memory_entity/named_defaultable_has_metadata.py @@ -0,0 +1,34 @@ +# generated by datamodel-codegen: +# filename: in_memory_entity/named_defaultable_has_metadata.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, Optional + +from pydantic import BaseModel, Field + + +class NamedDefaultableHasMetadataInMemoryEntitySchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + metadata: Optional[Dict[str, Any]] = None diff --git a/dist/py/in_memory_entity/named_defaultable_runtime_items.py b/dist/py/in_memory_entity/named_defaultable_runtime_items.py new file mode 100644 index 000000000..01646dbac --- /dev/null +++ b/dist/py/in_memory_entity/named_defaultable_runtime_items.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: in_memory_entity/named_defaultable_runtime_items.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional, Union + +from pydantic import BaseModel, Field + + +class NameResultSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class NamedDefaultableRuntimeItemsInMemoryEntitySchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: Optional[str] = None + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: Optional[List[Union[NameResultSchema, str]]] = None + """ + names of the pre-processors for this calculation + """ + postProcessors: Optional[List[Union[NameResultSchema, str]]] = None + """ + names of the post-processors for this calculation + """ + monitors: Optional[List[Union[NameResultSchema, str]]] = None + """ + names of the monitors for this calculation + """ + results: Optional[List[Union[NameResultSchema, str]]] = None + """ + names of the results for this calculation + """ diff --git a/dist/py/job/__init__.py b/dist/py/job/__init__.py new file mode 100644 index 000000000..810a5a5df --- /dev/null +++ b/dist/py/job/__init__.py @@ -0,0 +1,2312 @@ +# generated by datamodel-codegen: +# filename: job.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, RootModel, conint + + +class Queue(Enum): + D = "D" + OR = "OR" + OF = "OF" + OFplus = "OFplus" + SR = "SR" + SF = "SF" + SFplus = "SFplus" + GPOF = "GPOF" + GP2OF = "GP2OF" + GP4OF = "GP4OF" + GPSF = "GPSF" + GP2SF = "GP2SF" + GP4SF = "GP4SF" + OR4 = "OR4" + OR8 = "OR8" + OR16 = "OR16" + SR4 = "SR4" + SR8 = "SR8" + SR16 = "SR16" + GOF = "GOF" + G4OF = "G4OF" + G8OF = "G8OF" + GSF = "GSF" + G4SF = "G4SF" + G8SF = "G8SF" + + +class TimeLimitType(Enum): + per_single_attempt = "per single attempt" + compound = "compound" + + +class QuantumEspressoArgumentsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + nimage: Optional[conint(ge=1, le=100)] = 1 + """ + Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. + """ + npools: Optional[conint(ge=1, le=100)] = 1 + """ + Each image can be subpartitioned into `pools`, each taking care of a group of k-points. + """ + nband: Optional[conint(ge=1, le=100)] = 1 + """ + Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). + """ + ntg: Optional[conint(ge=1, le=100)] = 1 + """ + In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. + """ + ndiag: Optional[conint(ge=1, le=100)] = 1 + """ + A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. + """ + + +class Cluster(BaseModel): + fqdn: Optional[str] = None + """ + FQDN of the cluster. e.g. master-1-staging.exabyte.io + """ + jid: Optional[str] = None + """ + Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io + """ + + +class Domain(Enum): + rupy = "rupy" + alfred = "alfred" + celim = "celim" + webapp = "webapp" + + +class Error(BaseModel): + domain: Optional[Domain] = None + """ + Domain of the error appearance (internal). + """ + reason: Optional[str] = None + """ + Should be a short, unique, machine-readable error code string. e.g. FileNotFound + """ + message: Optional[str] = None + """ + Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' + """ + traceback: Optional[str] = None + """ + Full machine-readable error traceback. e.g. FileNotFound + """ + + +class ComputeArgumentsSchema(BaseModel): + queue: Queue + """ + Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. + """ + nodes: int + """ + number of nodes used for the job inside the RMS. + """ + ppn: int + """ + number of CPUs used for the job inside the RMS. + """ + timeLimit: str + """ + Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' + """ + timeLimitType: Optional[TimeLimitType] = "per single attempt" + """ + Convention to use when reasoning about time limits + """ + isRestartable: Optional[bool] = True + """ + Job is allowed to restart on termination. + """ + notify: Optional[str] = None + """ + Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. + """ + email: Optional[str] = None + """ + Email address to notify about job execution. + """ + maxCPU: Optional[int] = None + """ + Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. + """ + arguments: Optional[QuantumEspressoArgumentsSchema] = Field({}, title="quantum espresso arguments schema") + """ + Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + """ + cluster: Optional[Cluster] = None + """ + Cluster where the job is executed. Optional on create. Required on job submission. + """ + errors: Optional[List[Error]] = None + """ + Computation error. Optional. Appears only if something happens on jobs execution. + """ + excludeFilesPattern: Optional[str] = None + """ + A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + """ + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class Subtype(Enum): + input = "input" + output = "output" + dataFrame = "dataFrame" + + +class Source(Enum): + api = "api" + db = "db" + object_storage = "object_storage" + + +class DataIODatabaseIdsInputOutputSchema(BaseModel): + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + ids: List[str] + """ + IDs of item to retrieve from db + """ + + +class DataIODatabaseCollectionInputOutputSchema(BaseModel): + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + collection: str + """ + db collection name + """ + draft: bool + """ + whether the result should be saved as draft + """ + + +class ObjectStorageContainerData(BaseModel): + CONTAINER: Optional[str] = None + """ + Object storage container for the file + """ + NAME: Optional[str] = None + """ + Name of the file inside the object storage bucket + """ + PROVIDER: Optional[str] = None + """ + Object storage provider + """ + REGION: Optional[str] = None + """ + Region for the object container specified in Container + """ + SIZE: Optional[int] = None + """ + Size of the file in bytes + """ + TIMESTAMP: Optional[str] = None + """ + Unix timestamp showing when the file was last modified + """ + + +class ObjectStorageIoSchema(BaseModel): + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + overwrite: Optional[bool] = None + """ + if a file with the same filename already exists, whether to overwrite the old file + """ + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + filetype: Optional[str] = None + """ + What kind of file this is, e.g. image / text + """ + + +class Input( + RootModel[ + Union[DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema] + ] +): + root: Union[ + DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema + ] = Field(..., discriminator="type") + + +class DataIOUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + subtype: Subtype + source: Source + input: List[Input] + + +class InputItem(BaseModel): + operation: str + """ + reduce operation, e.g. aggregate + """ + arguments: List[str] + """ + arguments which are passed to reduce operation function + """ + + +class ReduceUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + mapFlowchartId: str + """ + corresponding map unit flowchart ID + """ + input: List[InputItem] + """ + input information for reduce unit + """ + + +class WorkflowUnitInputSchema(BaseModel): + scope: str + """ + Scope of the variable. e.g. 'global' or 'flowchart_id_2' + """ + name: str + """ + Name of the input data. e.g. total_energy + """ + + +class ConditionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + input: List[WorkflowUnitInputSchema] + """ + Input information for condition. + """ + statement: str + """ + Condition statement. e.g. 'abs(x-total_energy) < 1e-5' + """ + then: str + """ + Flowchart ID reference for `then` part of the condition. + """ + else_: str = Field(..., alias="else") + """ + Flowchart ID reference for `else` part of the condition. + """ + maxOccurrences: int + """ + Maximum occurrence of the condition, usable for loops. + """ + throwException: Optional[bool] = None + """ + Throw exception on reaching to maximum occurence. + """ + + +class AssertionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + statement: str + """ + The statement to be evaluated + """ + errorMessage: Optional[str] = None + """ + The error message to be displayed if the assertion fails + """ + + +class ApplicationSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + summary: str + """ + Application's short description. + """ + version: str + """ + Application version. e.g. 5.3.5 + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ + + +class ExecutableSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class FlavorSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ + + +class TemplateSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema(BaseModel): + template: TemplateSchema = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class ContextItem(BaseModel): + name: str + isEdited: bool + data: Dict[str, Any] + extraData: Optional[Dict[str, Any]] = None + + +class ExecutionUnitSchemaBase(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + application: ApplicationSchema = Field(..., title="application schema") + executable: Optional[ExecutableSchema] = Field(None, title="executable schema") + flavor: Optional[FlavorSchema] = Field(None, title="flavor schema") + input: List[ExecutionUnitInputItemSchema] + context: Optional[List[ContextItem]] = None + + +class AssignmentUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + scope: Optional[str] = None + input: List[WorkflowUnitInputSchema] + """ + Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + """ + operand: str + """ + Name of the global variable. e.g. 'x' + """ + value: Union[str, bool, float] + """ + Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + """ + + +class ProcessingUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + operation: str + """ + Contains information about the operation used. + """ + operationType: str + """ + Contains information about the specific type of the operation used. + """ + inputData: Any + """ + unit input (type to be specified by the child units) + """ + + +class WorkflowSubworkflowUnitSchema( + RootModel[ + Union[ + DataIOUnitSchema, + ReduceUnitSchema, + ConditionUnitSchema, + AssertionUnitSchema, + ExecutionUnitSchemaBase, + AssignmentUnitSchema, + ProcessingUnitSchema, + ] + ] +): + root: Union[ + DataIOUnitSchema, + ReduceUnitSchema, + ConditionUnitSchema, + AssertionUnitSchema, + ExecutionUnitSchemaBase, + AssignmentUnitSchema, + ProcessingUnitSchema, + ] = Field(..., discriminator="type", title="workflow subworkflow unit schema") + + +class BaseMethod(BaseModel): + type: str + """ + general type of this method, eg. `pseudopotential` + """ + subtype: str + """ + general subtype of this method, eg. `ultra-soft` + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + data: Optional[Dict[str, Any]] = None + """ + additional data specific to method, eg. array of pseudopotentials + """ + + +class BaseModel1(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + type: str + """ + general type of the model, eg. `dft` + """ + subtype: str + """ + general subtype of the model, eg. `lda` + """ + method: BaseMethod = Field(..., title="base method") + + +class SubworkflowSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + properties: Optional[List[str]] = None + """ + Array of characteristic properties calculated by this subworkflow + """ + compute: Optional[ComputeArgumentsSchema] = Field(None, title="compute arguments schema") + """ + Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + """ + units: List[WorkflowSubworkflowUnitSchema] + """ + Contains the Units of the subworkflow + """ + model: BaseModel1 = Field(..., title="base model") + application: ApplicationSchema = Field(..., title="application schema") + isDraft: Optional[bool] = False + """ + Defines whether to store the results/properties extracted in this unit to properties collection + """ + + +class ObjectStorageIoSchema5(BaseModel): + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + overwrite: Optional[bool] = None + """ + if a file with the same filename already exists, whether to overwrite the old file + """ + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + filetype: Optional[str] = None + """ + What kind of file this is, e.g. image / text + """ + + +class Input6( + RootModel[ + Union[DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema5] + ] +): + root: Union[ + DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema5 + ] = Field(..., discriminator="type") + + +class DataIOUnitSchema4(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + subtype: Subtype + source: Source + input: List[Input6] + + +class ReduceUnitSchema3(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + mapFlowchartId: str + """ + corresponding map unit flowchart ID + """ + input: List[InputItem] + """ + input information for reduce unit + """ + + +class ConditionUnitSchema4(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + input: List[WorkflowUnitInputSchema] + """ + Input information for condition. + """ + statement: str + """ + Condition statement. e.g. 'abs(x-total_energy) < 1e-5' + """ + then: str + """ + Flowchart ID reference for `then` part of the condition. + """ + else_: str = Field(..., alias="else") + """ + Flowchart ID reference for `else` part of the condition. + """ + maxOccurrences: int + """ + Maximum occurrence of the condition, usable for loops. + """ + throwException: Optional[bool] = None + """ + Throw exception on reaching to maximum occurence. + """ + + +class AssertionUnitSchema4(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + statement: str + """ + The statement to be evaluated + """ + errorMessage: Optional[str] = None + """ + The error message to be displayed if the assertion fails + """ + + +class ExecutableSchema8(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + + +class FlavorSchema8(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ + + +class TemplateSchema11(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema9(BaseModel): + template: TemplateSchema11 = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class ExecutionUnitSchemaBase4(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + application: ApplicationSchema = Field(..., title="application schema") + executable: Optional[ExecutableSchema8] = Field(None, title="executable schema") + flavor: Optional[FlavorSchema8] = Field(None, title="flavor schema") + input: List[ExecutionUnitInputItemSchema9] + context: Optional[List[ContextItem]] = None + + +class AssignmentUnitSchema4(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + scope: Optional[str] = None + input: List[WorkflowUnitInputSchema] + """ + Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + """ + operand: str + """ + Name of the global variable. e.g. 'x' + """ + value: Union[str, bool, float] + """ + Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + """ + + +class ProcessingUnitSchema3(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + operation: str + """ + Contains information about the operation used. + """ + operationType: str + """ + Contains information about the specific type of the operation used. + """ + inputData: Any + """ + unit input (type to be specified by the child units) + """ + + +class Input7(BaseModel): + target: str + """ + Name of the target variable to substitute using the values below. e.g. K_POINTS + """ + scope: Optional[str] = None + """ + Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given. + """ + name: Optional[str] = None + """ + Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given. + """ + values: Optional[List[Union[str, float, Dict[str, Any]]]] = None + """ + Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution + """ + useValues: Optional[bool] = None + + +class MapUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["7#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + workflowId: str + """ + Id of workflow to run inside map + """ + input: Input7 + """ + Input information for map. + """ + + +class SubworkflowUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["8#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + + +class WorkflowUnitSchema( + RootModel[ + Union[ + DataIOUnitSchema4, + ReduceUnitSchema3, + ConditionUnitSchema4, + AssertionUnitSchema4, + ExecutionUnitSchemaBase4, + AssignmentUnitSchema4, + ProcessingUnitSchema3, + MapUnitSchema, + SubworkflowUnitSchema, + ] + ] +): + root: Union[ + DataIOUnitSchema4, + ReduceUnitSchema3, + ConditionUnitSchema4, + AssertionUnitSchema4, + ExecutionUnitSchemaBase4, + AssignmentUnitSchema4, + ProcessingUnitSchema3, + MapUnitSchema, + SubworkflowUnitSchema, + ] = Field(..., discriminator="type", title="workflow unit schema") + + +class WorkflowSchema(BaseModel): + subworkflows: List[SubworkflowSchema] + """ + Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting + """ + units: List[WorkflowUnitSchema] + """ + Contains the Units of the Workflow + """ + properties: Optional[List[Union[str, Dict[str, Any]]]] = None + """ + Array of characteristic properties calculated by this workflow (TODO: add enums) + """ + isUsingDataset: Optional[bool] = None + """ + Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab. + """ + workflows: Optional[List[Dict[str, Any]]] = None + """ + Array of workflows with the same schema as the current one. + """ + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + metadata: Optional[Dict[str, Any]] = None + + +class Status42(Enum): + pre_submission = "pre-submission" + queued = "queued" + submitted = "submitted" + active = "active" + finished = "finished" + terminate_queued = "terminate-queued" + terminated = "terminated" + error = "error" + deleted = "deleted" + timeout = "timeout" + + +class Error5(BaseModel): + domain: Optional[Domain] = None + """ + Domain of the error appearance (internal). + """ + reason: Optional[str] = None + """ + Should be a short, unique, machine-readable error code string. e.g. FileNotFound + """ + message: Optional[str] = None + """ + Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' + """ + traceback: Optional[str] = None + """ + Full machine-readable error traceback. e.g. FileNotFound + """ + + +class ComputeArgumentsSchema5(BaseModel): + queue: Queue + """ + Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. + """ + nodes: int + """ + number of nodes used for the job inside the RMS. + """ + ppn: int + """ + number of CPUs used for the job inside the RMS. + """ + timeLimit: str + """ + Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' + """ + timeLimitType: Optional[TimeLimitType] = "per single attempt" + """ + Convention to use when reasoning about time limits + """ + isRestartable: Optional[bool] = True + """ + Job is allowed to restart on termination. + """ + notify: Optional[str] = None + """ + Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. + """ + email: Optional[str] = None + """ + Email address to notify about job execution. + """ + maxCPU: Optional[int] = None + """ + Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. + """ + arguments: Optional[QuantumEspressoArgumentsSchema] = Field({}, title="quantum espresso arguments schema") + """ + Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + """ + cluster: Optional[Cluster] = None + """ + Cluster where the job is executed. Optional on create. Required on job submission. + """ + errors: Optional[List[Error5]] = None + """ + Computation error. Optional. Appears only if something happens on jobs execution. + """ + excludeFilesPattern: Optional[str] = None + """ + A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + """ + + +class EntityReferenceSchema(BaseModel): + id: str = Field(..., alias="_id") + """ + entity identity + """ + cls: Optional[str] = None + """ + entity class + """ + slug: Optional[str] = None + """ + entity slug + """ + + +class WorkflowScopeSchema(BaseModel): + global_: Dict[str, Any] = Field(..., alias="global") + local: Dict[str, Any] + + +class ScopeTrackItem(BaseModel): + repetition: Optional[float] = None + scope: Optional[WorkflowScopeSchema] = Field(None, title="workflow scope schema") + + +class JobSchema(BaseModel): + workflow: WorkflowSchema = Field(..., title="workflow schema") + rmsId: Optional[str] = None + """ + Identity used to track jobs originated from command-line + """ + status: Status42 + """ + job status + """ + startTime: Optional[str] = None + """ + Approximate start time of the job. e.g. within 10 min + """ + workDir: Optional[str] = None + """ + The path to the working directory of this job, when the job originates from command-line + """ + compute: ComputeArgumentsSchema5 = Field(..., title="compute arguments schema") + """ + Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + """ + project: EntityReferenceSchema = Field(..., alias="_project", title="entity reference schema") + material: Optional[EntityReferenceSchema] = Field(None, alias="_material", title="entity reference schema") + parent: Optional[EntityReferenceSchema] = Field(None, title="entity reference schema") + runtimeContext: Optional[Dict[str, Any]] = None + """ + Context variables that the job will have access to at runtime + """ + scopeTrack: Optional[List[ScopeTrackItem]] = None + """ + history of the workflow scope on each update + """ + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + metadata: Optional[Dict[str, Any]] = None diff --git a/dist/py/job/base.py b/dist/py/job/base.py new file mode 100644 index 000000000..5bb177f89 --- /dev/null +++ b/dist/py/job/base.py @@ -0,0 +1,255 @@ +# generated by datamodel-codegen: +# filename: job/base.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel, ConfigDict, Field, conint + + +class Status(Enum): + pre_submission = "pre-submission" + queued = "queued" + submitted = "submitted" + active = "active" + finished = "finished" + terminate_queued = "terminate-queued" + terminated = "terminated" + error = "error" + deleted = "deleted" + timeout = "timeout" + + +class Queue(Enum): + D = "D" + OR = "OR" + OF = "OF" + OFplus = "OFplus" + SR = "SR" + SF = "SF" + SFplus = "SFplus" + GPOF = "GPOF" + GP2OF = "GP2OF" + GP4OF = "GP4OF" + GPSF = "GPSF" + GP2SF = "GP2SF" + GP4SF = "GP4SF" + OR4 = "OR4" + OR8 = "OR8" + OR16 = "OR16" + SR4 = "SR4" + SR8 = "SR8" + SR16 = "SR16" + GOF = "GOF" + G4OF = "G4OF" + G8OF = "G8OF" + GSF = "GSF" + G4SF = "G4SF" + G8SF = "G8SF" + + +class TimeLimitType(Enum): + per_single_attempt = "per single attempt" + compound = "compound" + + +class QuantumEspressoArgumentsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + nimage: Optional[conint(ge=1, le=100)] = 1 + """ + Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. + """ + npools: Optional[conint(ge=1, le=100)] = 1 + """ + Each image can be subpartitioned into `pools`, each taking care of a group of k-points. + """ + nband: Optional[conint(ge=1, le=100)] = 1 + """ + Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). + """ + ntg: Optional[conint(ge=1, le=100)] = 1 + """ + In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. + """ + ndiag: Optional[conint(ge=1, le=100)] = 1 + """ + A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. + """ + + +class Cluster(BaseModel): + fqdn: Optional[str] = None + """ + FQDN of the cluster. e.g. master-1-staging.exabyte.io + """ + jid: Optional[str] = None + """ + Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io + """ + + +class Domain(Enum): + rupy = "rupy" + alfred = "alfred" + celim = "celim" + webapp = "webapp" + + +class Error(BaseModel): + domain: Optional[Domain] = None + """ + Domain of the error appearance (internal). + """ + reason: Optional[str] = None + """ + Should be a short, unique, machine-readable error code string. e.g. FileNotFound + """ + message: Optional[str] = None + """ + Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' + """ + traceback: Optional[str] = None + """ + Full machine-readable error traceback. e.g. FileNotFound + """ + + +class ComputeArgumentsSchema(BaseModel): + queue: Queue + """ + Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. + """ + nodes: int + """ + number of nodes used for the job inside the RMS. + """ + ppn: int + """ + number of CPUs used for the job inside the RMS. + """ + timeLimit: str + """ + Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' + """ + timeLimitType: Optional[TimeLimitType] = "per single attempt" + """ + Convention to use when reasoning about time limits + """ + isRestartable: Optional[bool] = True + """ + Job is allowed to restart on termination. + """ + notify: Optional[str] = None + """ + Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. + """ + email: Optional[str] = None + """ + Email address to notify about job execution. + """ + maxCPU: Optional[int] = None + """ + Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. + """ + arguments: Optional[QuantumEspressoArgumentsSchema] = Field({}, title="quantum espresso arguments schema") + """ + Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + """ + cluster: Optional[Cluster] = None + """ + Cluster where the job is executed. Optional on create. Required on job submission. + """ + errors: Optional[List[Error]] = None + """ + Computation error. Optional. Appears only if something happens on jobs execution. + """ + excludeFilesPattern: Optional[str] = None + """ + A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + """ + + +class EntityReferenceSchema(BaseModel): + id: str = Field(..., alias="_id") + """ + entity identity + """ + cls: Optional[str] = None + """ + entity class + """ + slug: Optional[str] = None + """ + entity slug + """ + + +class WorkflowScopeSchema(BaseModel): + global_: Dict[str, Any] = Field(..., alias="global") + local: Dict[str, Any] + + +class ScopeTrackItem(BaseModel): + repetition: Optional[float] = None + scope: Optional[WorkflowScopeSchema] = Field(None, title="workflow scope schema") + + +class JobBaseSchema(BaseModel): + rmsId: Optional[str] = None + """ + Identity used to track jobs originated from command-line + """ + status: Status + """ + job status + """ + startTime: Optional[str] = None + """ + Approximate start time of the job. e.g. within 10 min + """ + workDir: Optional[str] = None + """ + The path to the working directory of this job, when the job originates from command-line + """ + compute: ComputeArgumentsSchema = Field(..., title="compute arguments schema") + """ + Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + """ + project: EntityReferenceSchema = Field(..., alias="_project", title="entity reference schema") + material: Optional[EntityReferenceSchema] = Field(None, alias="_material", title="entity reference schema") + parent: Optional[EntityReferenceSchema] = Field(None, title="entity reference schema") + runtimeContext: Optional[Dict[str, Any]] = None + """ + Context variables that the job will have access to at runtime + """ + scopeTrack: Optional[List[ScopeTrackItem]] = None + """ + history of the workflow scope on each update + """ + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + metadata: Optional[Dict[str, Any]] = None diff --git a/dist/py/job/compute.py b/dist/py/job/compute.py new file mode 100644 index 000000000..91f277b49 --- /dev/null +++ b/dist/py/job/compute.py @@ -0,0 +1,161 @@ +# generated by datamodel-codegen: +# filename: job/compute.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, ConfigDict, Field, conint + + +class Queue(Enum): + D = "D" + OR = "OR" + OF = "OF" + OFplus = "OFplus" + SR = "SR" + SF = "SF" + SFplus = "SFplus" + GPOF = "GPOF" + GP2OF = "GP2OF" + GP4OF = "GP4OF" + GPSF = "GPSF" + GP2SF = "GP2SF" + GP4SF = "GP4SF" + OR4 = "OR4" + OR8 = "OR8" + OR16 = "OR16" + SR4 = "SR4" + SR8 = "SR8" + SR16 = "SR16" + GOF = "GOF" + G4OF = "G4OF" + G8OF = "G8OF" + GSF = "GSF" + G4SF = "G4SF" + G8SF = "G8SF" + + +class TimeLimitType(Enum): + per_single_attempt = "per single attempt" + compound = "compound" + + +class QuantumEspressoArgumentsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + nimage: Optional[conint(ge=1, le=100)] = 1 + """ + Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. + """ + npools: Optional[conint(ge=1, le=100)] = 1 + """ + Each image can be subpartitioned into `pools`, each taking care of a group of k-points. + """ + nband: Optional[conint(ge=1, le=100)] = 1 + """ + Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). + """ + ntg: Optional[conint(ge=1, le=100)] = 1 + """ + In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. + """ + ndiag: Optional[conint(ge=1, le=100)] = 1 + """ + A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. + """ + + +class Cluster(BaseModel): + fqdn: Optional[str] = None + """ + FQDN of the cluster. e.g. master-1-staging.exabyte.io + """ + jid: Optional[str] = None + """ + Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io + """ + + +class Domain(Enum): + rupy = "rupy" + alfred = "alfred" + celim = "celim" + webapp = "webapp" + + +class Error(BaseModel): + domain: Optional[Domain] = None + """ + Domain of the error appearance (internal). + """ + reason: Optional[str] = None + """ + Should be a short, unique, machine-readable error code string. e.g. FileNotFound + """ + message: Optional[str] = None + """ + Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' + """ + traceback: Optional[str] = None + """ + Full machine-readable error traceback. e.g. FileNotFound + """ + + +class ComputeArgumentsSchema(BaseModel): + queue: Queue + """ + Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. + """ + nodes: int + """ + number of nodes used for the job inside the RMS. + """ + ppn: int + """ + number of CPUs used for the job inside the RMS. + """ + timeLimit: str + """ + Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' + """ + timeLimitType: Optional[TimeLimitType] = "per single attempt" + """ + Convention to use when reasoning about time limits + """ + isRestartable: Optional[bool] = True + """ + Job is allowed to restart on termination. + """ + notify: Optional[str] = None + """ + Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. + """ + email: Optional[str] = None + """ + Email address to notify about job execution. + """ + maxCPU: Optional[int] = None + """ + Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. + """ + arguments: Optional[QuantumEspressoArgumentsSchema] = Field({}, title="quantum espresso arguments schema") + """ + Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + """ + cluster: Optional[Cluster] = None + """ + Cluster where the job is executed. Optional on create. Required on job submission. + """ + errors: Optional[List[Error]] = None + """ + Computation error. Optional. Appears only if something happens on jobs execution. + """ + excludeFilesPattern: Optional[str] = None + """ + A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + """ diff --git a/dist/py/material/__init__.py b/dist/py/material/__init__.py new file mode 100644 index 000000000..5ed9fc3e2 --- /dev/null +++ b/dist/py/material/__init__.py @@ -0,0 +1,557 @@ +# generated by datamodel-codegen: +# filename: material.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value127(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value127] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name560(Enum): + density = "density" + + +class Units251(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units251] = None + value: float + + +class Units252(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units252] = None + value: float + + +class Name561(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name562(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name563(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name564(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name565(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name566(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name566 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class MaterialSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ diff --git a/dist/py/material/consistency_check.py b/dist/py/material/consistency_check.py new file mode 100644 index 000000000..4a9f97026 --- /dev/null +++ b/dist/py/material/consistency_check.py @@ -0,0 +1,40 @@ +# generated by datamodel-codegen: +# filename: material/consistency_check.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class Name(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ diff --git a/dist/py/material/conventional.py b/dist/py/material/conventional.py new file mode 100644 index 000000000..fb93d1c86 --- /dev/null +++ b/dist/py/material/conventional.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: material/conventional.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, Optional + +from pydantic import BaseModel + + +class MaterialConventionalSchema(BaseModel): + conventional: Optional[Dict[str, Any]] = None diff --git a/dist/py/materials_category/compound_pristine_structures/two_dimensional/interface/__init__.py b/dist/py/materials_category/compound_pristine_structures/two_dimensional/interface/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category/compound_pristine_structures/two_dimensional/interface/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.py b/dist/py/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.py new file mode 100644 index 000000000..4a40e5312 --- /dev/null +++ b/dist/py/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.py @@ -0,0 +1,4611 @@ +# generated by datamodel-codegen: +# filename: materials_category/compound_pristine_structures/two_dimensional/interface/configuration.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint, constr + + +class ChemicalElements(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class TerminationSchema(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value85(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value85] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name313(Enum): + density = "density" + + +class Units124(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units124] = None + value: float + + +class Units125(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units125] = None + value: float + + +class Name314(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name315(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name316(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name317(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name318(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name319(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name319 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema(BaseModel): + termination_top: TerminationSchema = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class AxisEnum(Enum): + x = "x" + y = "y" + z = "z" + + +class Value86(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value87(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema42(BaseModel): + value: Union[Value86, Value87] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema40(BaseModel): + elements: List[AtomicElementSchema42] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema39(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema39(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema39(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema39] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema39] = Field( + default_factory=lambda: LatticeUnitsSchema39.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name320(Enum): + volume = "volume" + + +class Units126(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema39(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units126] = None + value: float + + +class Name321(Enum): + density = "density" + + +class Units127(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema39(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units127] = None + value: float + + +class Units128(Enum): + angstrom = "angstrom" + + +class ScalarSchema40(BaseModel): + units: Optional[Units128] = None + value: float + + +class Name322(Enum): + symmetry = "symmetry" + + +class SymmetrySchema39(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema40] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name323(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio39(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name324(Enum): + p_norm = "p-norm" + + +class PNorm39(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name325(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema39(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name326(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema39(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema39( + RootModel[ + Union[ + VolumeSchema39, + DensitySchema39, + SymmetrySchema39, + ElementalRatio39, + PNorm39, + InChIRepresentationSchema39, + InChIKeyRepresentationSchema39, + ] + ] +): + root: Union[ + VolumeSchema39, + DensitySchema39, + SymmetrySchema39, + ElementalRatio39, + PNorm39, + InChIRepresentationSchema39, + InChIKeyRepresentationSchema39, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema39(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name327(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema39(BaseModel): + name: Name327 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions39(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata39(BaseModel): + boundaryConditions: Optional[BoundaryConditions39] = None + + +class CrystalSchema39(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema40 = Field(..., title="basis schema") + lattice: LatticeSchema39 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema39]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema39] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema39]] = None + metadata: Optional[Metadata39] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema39 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class ObjectWithIdAndValueSchema(BaseModel): + value: float + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class SlabConfigurationSchema(BaseModel): + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema, VacuumConfigurationSchema]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class SupercellMatrix2DSchemaItem(RootModel[List[int]]): + root: List[int] + + +class ArrayOf3NumberElementsSchema(RootModel[List[float]]): + root: List[float] = Field(..., title="array of 3 number elements schema") + + +class TerminationSchema17(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value88(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value89(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema43(BaseModel): + value: Union[Value88, Value89] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema41(BaseModel): + elements: List[AtomicElementSchema43] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema40(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema40(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema40(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema40] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema40] = Field( + default_factory=lambda: LatticeUnitsSchema40.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name328(Enum): + volume = "volume" + + +class Units129(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema40(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units129] = None + value: float + + +class Name329(Enum): + density = "density" + + +class Units130(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema40(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units130] = None + value: float + + +class Units131(Enum): + angstrom = "angstrom" + + +class ScalarSchema41(BaseModel): + units: Optional[Units131] = None + value: float + + +class Name330(Enum): + symmetry = "symmetry" + + +class SymmetrySchema40(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema41] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name331(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio40(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name332(Enum): + p_norm = "p-norm" + + +class PNorm40(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name333(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema40(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name334(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema40(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema40( + RootModel[ + Union[ + VolumeSchema40, + DensitySchema40, + SymmetrySchema40, + ElementalRatio40, + PNorm40, + InChIRepresentationSchema40, + InChIKeyRepresentationSchema40, + ] + ] +): + root: Union[ + VolumeSchema40, + DensitySchema40, + SymmetrySchema40, + ElementalRatio40, + PNorm40, + InChIRepresentationSchema40, + InChIKeyRepresentationSchema40, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema40(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name335(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema40(BaseModel): + name: Name335 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions40(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata40(BaseModel): + boundaryConditions: Optional[BoundaryConditions40] = None + + +class CrystalSchema40(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema41 = Field(..., title="basis schema") + lattice: LatticeSchema40 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema40]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema40] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema40]] = None + metadata: Optional[Metadata40] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema15(BaseModel): + termination_top: TerminationSchema17 = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema40 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class Value90(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value91(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema44(BaseModel): + value: Union[Value90, Value91] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema42(BaseModel): + elements: List[AtomicElementSchema44] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema41(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema41(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema41(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema41] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema41] = Field( + default_factory=lambda: LatticeUnitsSchema41.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name336(Enum): + volume = "volume" + + +class Units132(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema41(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units132] = None + value: float + + +class Name337(Enum): + density = "density" + + +class Units133(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema41(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units133] = None + value: float + + +class Units134(Enum): + angstrom = "angstrom" + + +class ScalarSchema42(BaseModel): + units: Optional[Units134] = None + value: float + + +class Name338(Enum): + symmetry = "symmetry" + + +class SymmetrySchema41(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema42] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name339(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio41(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name340(Enum): + p_norm = "p-norm" + + +class PNorm41(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name341(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema41(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name342(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema41(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema41( + RootModel[ + Union[ + VolumeSchema41, + DensitySchema41, + SymmetrySchema41, + ElementalRatio41, + PNorm41, + InChIRepresentationSchema41, + InChIKeyRepresentationSchema41, + ] + ] +): + root: Union[ + VolumeSchema41, + DensitySchema41, + SymmetrySchema41, + ElementalRatio41, + PNorm41, + InChIRepresentationSchema41, + InChIKeyRepresentationSchema41, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema41(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name343(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema41(BaseModel): + name: Name343 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions41(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata41(BaseModel): + boundaryConditions: Optional[BoundaryConditions41] = None + + +class CrystalSchema41(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema42 = Field(..., title="basis schema") + lattice: LatticeSchema41 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema41]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema41] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema41]] = None + metadata: Optional[Metadata41] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema19(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema41 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class SlabStrainedSupercellConfigurationSchema(BaseModel): + xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field( + default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]], + max_length=2, + min_length=2, + title="Supercell Matrix 2D Schema", + ) + """ + Supercell matrix for xy plane transformations + """ + strain_matrix: List[ArrayOf3NumberElementsSchema] = Field( + ..., max_length=3, min_length=3, title="matrix 3x3 schema" + ) + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema15, VacuumConfigurationSchema19]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class TerminationSchema18(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value92(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value93(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema45(BaseModel): + value: Union[Value92, Value93] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema43(BaseModel): + elements: List[AtomicElementSchema45] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema42(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema42(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema42(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema42] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema42] = Field( + default_factory=lambda: LatticeUnitsSchema42.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name344(Enum): + volume = "volume" + + +class Units135(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema42(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units135] = None + value: float + + +class Name345(Enum): + density = "density" + + +class Units136(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema42(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units136] = None + value: float + + +class Units137(Enum): + angstrom = "angstrom" + + +class ScalarSchema43(BaseModel): + units: Optional[Units137] = None + value: float + + +class Name346(Enum): + symmetry = "symmetry" + + +class SymmetrySchema42(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema43] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name347(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio42(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name348(Enum): + p_norm = "p-norm" + + +class PNorm42(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name349(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema42(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name350(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema42(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema42( + RootModel[ + Union[ + VolumeSchema42, + DensitySchema42, + SymmetrySchema42, + ElementalRatio42, + PNorm42, + InChIRepresentationSchema42, + InChIKeyRepresentationSchema42, + ] + ] +): + root: Union[ + VolumeSchema42, + DensitySchema42, + SymmetrySchema42, + ElementalRatio42, + PNorm42, + InChIRepresentationSchema42, + InChIKeyRepresentationSchema42, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema42(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name351(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema42(BaseModel): + name: Name351 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions42(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata42(BaseModel): + boundaryConditions: Optional[BoundaryConditions42] = None + + +class CrystalSchema42(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema43 = Field(..., title="basis schema") + lattice: LatticeSchema42 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema42]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema42] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema42]] = None + metadata: Optional[Metadata42] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema16(BaseModel): + termination_top: TerminationSchema18 = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema42 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class Value94(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value95(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema46(BaseModel): + value: Union[Value94, Value95] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema44(BaseModel): + elements: List[AtomicElementSchema46] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema43(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema43(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema43(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema43] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema43] = Field( + default_factory=lambda: LatticeUnitsSchema43.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name352(Enum): + volume = "volume" + + +class Units138(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema43(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units138] = None + value: float + + +class Name353(Enum): + density = "density" + + +class Units139(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema43(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units139] = None + value: float + + +class Units140(Enum): + angstrom = "angstrom" + + +class ScalarSchema44(BaseModel): + units: Optional[Units140] = None + value: float + + +class Name354(Enum): + symmetry = "symmetry" + + +class SymmetrySchema43(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema44] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name355(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio43(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name356(Enum): + p_norm = "p-norm" + + +class PNorm43(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name357(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema43(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name358(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema43(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema43( + RootModel[ + Union[ + VolumeSchema43, + DensitySchema43, + SymmetrySchema43, + ElementalRatio43, + PNorm43, + InChIRepresentationSchema43, + InChIKeyRepresentationSchema43, + ] + ] +): + root: Union[ + VolumeSchema43, + DensitySchema43, + SymmetrySchema43, + ElementalRatio43, + PNorm43, + InChIRepresentationSchema43, + InChIKeyRepresentationSchema43, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema43(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name359(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema43(BaseModel): + name: Name359 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions43(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata43(BaseModel): + boundaryConditions: Optional[BoundaryConditions43] = None + + +class CrystalSchema43(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema44 = Field(..., title="basis schema") + lattice: LatticeSchema43 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema43]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema43] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema43]] = None + metadata: Optional[Metadata43] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema20(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema43 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class SlabConfigurationSchema10(BaseModel): + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema16, VacuumConfigurationSchema20]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class TerminationSchema19(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value96(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value97(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema47(BaseModel): + value: Union[Value96, Value97] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema45(BaseModel): + elements: List[AtomicElementSchema47] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema44(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema44(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema44(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema44] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema44] = Field( + default_factory=lambda: LatticeUnitsSchema44.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name360(Enum): + volume = "volume" + + +class Units141(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema44(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units141] = None + value: float + + +class Name361(Enum): + density = "density" + + +class Units142(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema44(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units142] = None + value: float + + +class Units143(Enum): + angstrom = "angstrom" + + +class ScalarSchema45(BaseModel): + units: Optional[Units143] = None + value: float + + +class Name362(Enum): + symmetry = "symmetry" + + +class SymmetrySchema44(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema45] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name363(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio44(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name364(Enum): + p_norm = "p-norm" + + +class PNorm44(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name365(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema44(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name366(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema44(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema44( + RootModel[ + Union[ + VolumeSchema44, + DensitySchema44, + SymmetrySchema44, + ElementalRatio44, + PNorm44, + InChIRepresentationSchema44, + InChIKeyRepresentationSchema44, + ] + ] +): + root: Union[ + VolumeSchema44, + DensitySchema44, + SymmetrySchema44, + ElementalRatio44, + PNorm44, + InChIRepresentationSchema44, + InChIKeyRepresentationSchema44, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema44(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name367(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema44(BaseModel): + name: Name367 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions44(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata44(BaseModel): + boundaryConditions: Optional[BoundaryConditions44] = None + + +class CrystalSchema44(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema45 = Field(..., title="basis schema") + lattice: LatticeSchema44 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema44]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema44] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema44]] = None + metadata: Optional[Metadata44] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema17(BaseModel): + termination_top: TerminationSchema19 = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema44 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class Value98(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value99(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema48(BaseModel): + value: Union[Value98, Value99] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema46(BaseModel): + elements: List[AtomicElementSchema48] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema45(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema45(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema45(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema45] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema45] = Field( + default_factory=lambda: LatticeUnitsSchema45.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name368(Enum): + volume = "volume" + + +class Units144(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema45(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units144] = None + value: float + + +class Name369(Enum): + density = "density" + + +class Units145(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema45(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units145] = None + value: float + + +class Units146(Enum): + angstrom = "angstrom" + + +class ScalarSchema46(BaseModel): + units: Optional[Units146] = None + value: float + + +class Name370(Enum): + symmetry = "symmetry" + + +class SymmetrySchema45(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema46] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name371(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio45(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name372(Enum): + p_norm = "p-norm" + + +class PNorm45(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name373(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema45(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name374(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema45(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema45( + RootModel[ + Union[ + VolumeSchema45, + DensitySchema45, + SymmetrySchema45, + ElementalRatio45, + PNorm45, + InChIRepresentationSchema45, + InChIKeyRepresentationSchema45, + ] + ] +): + root: Union[ + VolumeSchema45, + DensitySchema45, + SymmetrySchema45, + ElementalRatio45, + PNorm45, + InChIRepresentationSchema45, + InChIKeyRepresentationSchema45, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema45(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name375(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema45(BaseModel): + name: Name375 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions45(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata45(BaseModel): + boundaryConditions: Optional[BoundaryConditions45] = None + + +class CrystalSchema45(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema46 = Field(..., title="basis schema") + lattice: LatticeSchema45 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema45]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema45] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema45]] = None + metadata: Optional[Metadata45] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema21(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema45 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class SlabStrainedSupercellConfigurationSchema5(BaseModel): + xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field( + default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]], + max_length=2, + min_length=2, + title="Supercell Matrix 2D Schema", + ) + """ + Supercell matrix for xy plane transformations + """ + strain_matrix: List[ArrayOf3NumberElementsSchema] = Field( + ..., max_length=3, min_length=3, title="matrix 3x3 schema" + ) + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema17, VacuumConfigurationSchema21]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class Value100(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value101(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema49(BaseModel): + value: Union[Value100, Value101] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema47(BaseModel): + elements: List[AtomicElementSchema49] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema46(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema46(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema46(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema46] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema46] = Field( + default_factory=lambda: LatticeUnitsSchema46.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name376(Enum): + volume = "volume" + + +class Units147(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema46(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units147] = None + value: float + + +class Name377(Enum): + density = "density" + + +class Units148(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema46(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units148] = None + value: float + + +class Units149(Enum): + angstrom = "angstrom" + + +class ScalarSchema47(BaseModel): + units: Optional[Units149] = None + value: float + + +class Name378(Enum): + symmetry = "symmetry" + + +class SymmetrySchema46(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema47] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name379(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio46(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name380(Enum): + p_norm = "p-norm" + + +class PNorm46(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name381(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema46(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name382(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema46(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema46( + RootModel[ + Union[ + VolumeSchema46, + DensitySchema46, + SymmetrySchema46, + ElementalRatio46, + PNorm46, + InChIRepresentationSchema46, + InChIKeyRepresentationSchema46, + ] + ] +): + root: Union[ + VolumeSchema46, + DensitySchema46, + SymmetrySchema46, + ElementalRatio46, + PNorm46, + InChIRepresentationSchema46, + InChIKeyRepresentationSchema46, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema46(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name383(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema46(BaseModel): + name: Name383 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions46(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata46(BaseModel): + boundaryConditions: Optional[BoundaryConditions46] = None + + +class CrystalSchema46(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema47 = Field(..., title="basis schema") + lattice: LatticeSchema46 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema46]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema46] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema46]] = None + metadata: Optional[Metadata46] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema22(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema46 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class InterfaceConfigurationSchema(BaseModel): + stack_components: List[ + Union[ + Union[SlabConfigurationSchema, SlabStrainedSupercellConfigurationSchema], + Union[SlabConfigurationSchema10, SlabStrainedSupercellConfigurationSchema5], + VacuumConfigurationSchema22, + ] + ] = Field(..., max_length=3, min_length=2) + """ + Components of the interface: slab, slab and vacuum + """ + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + xy_shift: Optional[List[float]] = Field([0, 0], max_length=2, min_length=2, title="vector 2d schema") + """ + xy shift for the film as cartesian 2D vector on the xy plane. + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ diff --git a/dist/py/materials_category/defective_structures/one_dimensional/grain_boundary_linear/__init__.py b/dist/py/materials_category/defective_structures/one_dimensional/grain_boundary_linear/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category/defective_structures/one_dimensional/grain_boundary_linear/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.py b/dist/py/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.py new file mode 100644 index 000000000..2786fea1b --- /dev/null +++ b/dist/py/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.py @@ -0,0 +1,4615 @@ +# generated by datamodel-codegen: +# filename: materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint, constr + + +class ChemicalElements(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class TerminationSchema(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value67(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value67] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name241(Enum): + density = "density" + + +class Units97(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units97] = None + value: float + + +class Units98(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units98] = None + value: float + + +class Name242(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name243(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name244(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name245(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name246(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name247(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name247 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema(BaseModel): + termination_top: TerminationSchema = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class AxisEnum(Enum): + x = "x" + y = "y" + z = "z" + + +class Value68(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value69(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema33(BaseModel): + value: Union[Value68, Value69] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema31(BaseModel): + elements: List[AtomicElementSchema33] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema30(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema30(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema30(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema30] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema30] = Field( + default_factory=lambda: LatticeUnitsSchema30.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name248(Enum): + volume = "volume" + + +class Units99(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema30(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units99] = None + value: float + + +class Name249(Enum): + density = "density" + + +class Units100(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema30(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units100] = None + value: float + + +class Units101(Enum): + angstrom = "angstrom" + + +class ScalarSchema31(BaseModel): + units: Optional[Units101] = None + value: float + + +class Name250(Enum): + symmetry = "symmetry" + + +class SymmetrySchema30(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema31] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name251(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio30(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name252(Enum): + p_norm = "p-norm" + + +class PNorm30(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name253(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema30(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name254(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema30(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema30( + RootModel[ + Union[ + VolumeSchema30, + DensitySchema30, + SymmetrySchema30, + ElementalRatio30, + PNorm30, + InChIRepresentationSchema30, + InChIKeyRepresentationSchema30, + ] + ] +): + root: Union[ + VolumeSchema30, + DensitySchema30, + SymmetrySchema30, + ElementalRatio30, + PNorm30, + InChIRepresentationSchema30, + InChIKeyRepresentationSchema30, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema30(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name255(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema30(BaseModel): + name: Name255 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions30(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata30(BaseModel): + boundaryConditions: Optional[BoundaryConditions30] = None + + +class CrystalSchema30(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema31 = Field(..., title="basis schema") + lattice: LatticeSchema30 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema30]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema30] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema30]] = None + metadata: Optional[Metadata30] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema30 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class ObjectWithIdAndValueSchema(BaseModel): + value: float + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class SlabConfigurationSchema(BaseModel): + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema, VacuumConfigurationSchema]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class SupercellMatrix2DSchemaItem(RootModel[List[int]]): + root: List[int] + + +class ArrayOf3NumberElementsSchema(RootModel[List[float]]): + root: List[float] = Field(..., title="array of 3 number elements schema") + + +class TerminationSchema13(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value70(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value71(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema34(BaseModel): + value: Union[Value70, Value71] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema32(BaseModel): + elements: List[AtomicElementSchema34] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema31(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema31(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema31(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema31] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema31] = Field( + default_factory=lambda: LatticeUnitsSchema31.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name256(Enum): + volume = "volume" + + +class Units102(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema31(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units102] = None + value: float + + +class Name257(Enum): + density = "density" + + +class Units103(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema31(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units103] = None + value: float + + +class Units104(Enum): + angstrom = "angstrom" + + +class ScalarSchema32(BaseModel): + units: Optional[Units104] = None + value: float + + +class Name258(Enum): + symmetry = "symmetry" + + +class SymmetrySchema31(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema32] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name259(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio31(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name260(Enum): + p_norm = "p-norm" + + +class PNorm31(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name261(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema31(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name262(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema31(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema31( + RootModel[ + Union[ + VolumeSchema31, + DensitySchema31, + SymmetrySchema31, + ElementalRatio31, + PNorm31, + InChIRepresentationSchema31, + InChIKeyRepresentationSchema31, + ] + ] +): + root: Union[ + VolumeSchema31, + DensitySchema31, + SymmetrySchema31, + ElementalRatio31, + PNorm31, + InChIRepresentationSchema31, + InChIKeyRepresentationSchema31, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema31(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name263(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema31(BaseModel): + name: Name263 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions31(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata31(BaseModel): + boundaryConditions: Optional[BoundaryConditions31] = None + + +class CrystalSchema31(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema32 = Field(..., title="basis schema") + lattice: LatticeSchema31 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema31]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema31] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema31]] = None + metadata: Optional[Metadata31] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema11(BaseModel): + termination_top: TerminationSchema13 = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema31 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class Value72(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value73(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema35(BaseModel): + value: Union[Value72, Value73] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema33(BaseModel): + elements: List[AtomicElementSchema35] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema32(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema32(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema32(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema32] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema32] = Field( + default_factory=lambda: LatticeUnitsSchema32.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name264(Enum): + volume = "volume" + + +class Units105(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema32(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units105] = None + value: float + + +class Name265(Enum): + density = "density" + + +class Units106(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema32(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units106] = None + value: float + + +class Units107(Enum): + angstrom = "angstrom" + + +class ScalarSchema33(BaseModel): + units: Optional[Units107] = None + value: float + + +class Name266(Enum): + symmetry = "symmetry" + + +class SymmetrySchema32(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema33] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name267(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio32(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name268(Enum): + p_norm = "p-norm" + + +class PNorm32(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name269(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema32(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name270(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema32(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema32( + RootModel[ + Union[ + VolumeSchema32, + DensitySchema32, + SymmetrySchema32, + ElementalRatio32, + PNorm32, + InChIRepresentationSchema32, + InChIKeyRepresentationSchema32, + ] + ] +): + root: Union[ + VolumeSchema32, + DensitySchema32, + SymmetrySchema32, + ElementalRatio32, + PNorm32, + InChIRepresentationSchema32, + InChIKeyRepresentationSchema32, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema32(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name271(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema32(BaseModel): + name: Name271 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions32(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata32(BaseModel): + boundaryConditions: Optional[BoundaryConditions32] = None + + +class CrystalSchema32(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema33 = Field(..., title="basis schema") + lattice: LatticeSchema32 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema32]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema32] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema32]] = None + metadata: Optional[Metadata32] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema14(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema32 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class SlabStrainedSupercellConfigurationSchema(BaseModel): + xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field( + default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]], + max_length=2, + min_length=2, + title="Supercell Matrix 2D Schema", + ) + """ + Supercell matrix for xy plane transformations + """ + strain_matrix: List[ArrayOf3NumberElementsSchema] = Field( + ..., max_length=3, min_length=3, title="matrix 3x3 schema" + ) + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema11, VacuumConfigurationSchema14]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class TerminationSchema14(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value74(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value75(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema36(BaseModel): + value: Union[Value74, Value75] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema34(BaseModel): + elements: List[AtomicElementSchema36] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema33(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema33(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema33(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema33] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema33] = Field( + default_factory=lambda: LatticeUnitsSchema33.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name272(Enum): + volume = "volume" + + +class Units108(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema33(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units108] = None + value: float + + +class Name273(Enum): + density = "density" + + +class Units109(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema33(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units109] = None + value: float + + +class Units110(Enum): + angstrom = "angstrom" + + +class ScalarSchema34(BaseModel): + units: Optional[Units110] = None + value: float + + +class Name274(Enum): + symmetry = "symmetry" + + +class SymmetrySchema33(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema34] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name275(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio33(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name276(Enum): + p_norm = "p-norm" + + +class PNorm33(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name277(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema33(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name278(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema33(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema33( + RootModel[ + Union[ + VolumeSchema33, + DensitySchema33, + SymmetrySchema33, + ElementalRatio33, + PNorm33, + InChIRepresentationSchema33, + InChIKeyRepresentationSchema33, + ] + ] +): + root: Union[ + VolumeSchema33, + DensitySchema33, + SymmetrySchema33, + ElementalRatio33, + PNorm33, + InChIRepresentationSchema33, + InChIKeyRepresentationSchema33, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema33(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name279(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema33(BaseModel): + name: Name279 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions33(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata33(BaseModel): + boundaryConditions: Optional[BoundaryConditions33] = None + + +class CrystalSchema33(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema34 = Field(..., title="basis schema") + lattice: LatticeSchema33 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema33]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema33] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema33]] = None + metadata: Optional[Metadata33] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema12(BaseModel): + termination_top: TerminationSchema14 = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema33 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class Value76(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value77(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema37(BaseModel): + value: Union[Value76, Value77] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema35(BaseModel): + elements: List[AtomicElementSchema37] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema34(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema34(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema34(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema34] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema34] = Field( + default_factory=lambda: LatticeUnitsSchema34.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name280(Enum): + volume = "volume" + + +class Units111(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema34(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units111] = None + value: float + + +class Name281(Enum): + density = "density" + + +class Units112(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema34(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units112] = None + value: float + + +class Units113(Enum): + angstrom = "angstrom" + + +class ScalarSchema35(BaseModel): + units: Optional[Units113] = None + value: float + + +class Name282(Enum): + symmetry = "symmetry" + + +class SymmetrySchema34(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema35] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name283(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio34(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name284(Enum): + p_norm = "p-norm" + + +class PNorm34(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name285(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema34(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name286(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema34(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema34( + RootModel[ + Union[ + VolumeSchema34, + DensitySchema34, + SymmetrySchema34, + ElementalRatio34, + PNorm34, + InChIRepresentationSchema34, + InChIKeyRepresentationSchema34, + ] + ] +): + root: Union[ + VolumeSchema34, + DensitySchema34, + SymmetrySchema34, + ElementalRatio34, + PNorm34, + InChIRepresentationSchema34, + InChIKeyRepresentationSchema34, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema34(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name287(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema34(BaseModel): + name: Name287 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions34(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata34(BaseModel): + boundaryConditions: Optional[BoundaryConditions34] = None + + +class CrystalSchema34(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema35 = Field(..., title="basis schema") + lattice: LatticeSchema34 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema34]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema34] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema34]] = None + metadata: Optional[Metadata34] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema15(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema34 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class SlabConfigurationSchema8(BaseModel): + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema12, VacuumConfigurationSchema15]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class TerminationSchema15(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value78(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value79(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema38(BaseModel): + value: Union[Value78, Value79] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema36(BaseModel): + elements: List[AtomicElementSchema38] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema35(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema35(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema35(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema35] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema35] = Field( + default_factory=lambda: LatticeUnitsSchema35.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name288(Enum): + volume = "volume" + + +class Units114(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema35(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units114] = None + value: float + + +class Name289(Enum): + density = "density" + + +class Units115(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema35(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units115] = None + value: float + + +class Units116(Enum): + angstrom = "angstrom" + + +class ScalarSchema36(BaseModel): + units: Optional[Units116] = None + value: float + + +class Name290(Enum): + symmetry = "symmetry" + + +class SymmetrySchema35(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema36] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name291(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio35(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name292(Enum): + p_norm = "p-norm" + + +class PNorm35(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name293(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema35(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name294(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema35(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema35( + RootModel[ + Union[ + VolumeSchema35, + DensitySchema35, + SymmetrySchema35, + ElementalRatio35, + PNorm35, + InChIRepresentationSchema35, + InChIKeyRepresentationSchema35, + ] + ] +): + root: Union[ + VolumeSchema35, + DensitySchema35, + SymmetrySchema35, + ElementalRatio35, + PNorm35, + InChIRepresentationSchema35, + InChIKeyRepresentationSchema35, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema35(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name295(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema35(BaseModel): + name: Name295 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions35(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata35(BaseModel): + boundaryConditions: Optional[BoundaryConditions35] = None + + +class CrystalSchema35(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema36 = Field(..., title="basis schema") + lattice: LatticeSchema35 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema35]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema35] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema35]] = None + metadata: Optional[Metadata35] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema13(BaseModel): + termination_top: TerminationSchema15 = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema35 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class Value80(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value81(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema39(BaseModel): + value: Union[Value80, Value81] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema37(BaseModel): + elements: List[AtomicElementSchema39] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema36(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema36(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema36(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema36] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema36] = Field( + default_factory=lambda: LatticeUnitsSchema36.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name296(Enum): + volume = "volume" + + +class Units117(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema36(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units117] = None + value: float + + +class Name297(Enum): + density = "density" + + +class Units118(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema36(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units118] = None + value: float + + +class Units119(Enum): + angstrom = "angstrom" + + +class ScalarSchema37(BaseModel): + units: Optional[Units119] = None + value: float + + +class Name298(Enum): + symmetry = "symmetry" + + +class SymmetrySchema36(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema37] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name299(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio36(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name300(Enum): + p_norm = "p-norm" + + +class PNorm36(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name301(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema36(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name302(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema36(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema36( + RootModel[ + Union[ + VolumeSchema36, + DensitySchema36, + SymmetrySchema36, + ElementalRatio36, + PNorm36, + InChIRepresentationSchema36, + InChIKeyRepresentationSchema36, + ] + ] +): + root: Union[ + VolumeSchema36, + DensitySchema36, + SymmetrySchema36, + ElementalRatio36, + PNorm36, + InChIRepresentationSchema36, + InChIKeyRepresentationSchema36, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema36(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name303(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema36(BaseModel): + name: Name303 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions36(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata36(BaseModel): + boundaryConditions: Optional[BoundaryConditions36] = None + + +class CrystalSchema36(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema37 = Field(..., title="basis schema") + lattice: LatticeSchema36 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema36]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema36] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema36]] = None + metadata: Optional[Metadata36] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema16(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema36 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class SlabStrainedSupercellConfigurationSchema3(BaseModel): + xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field( + default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]], + max_length=2, + min_length=2, + title="Supercell Matrix 2D Schema", + ) + """ + Supercell matrix for xy plane transformations + """ + strain_matrix: List[ArrayOf3NumberElementsSchema] = Field( + ..., max_length=3, min_length=3, title="matrix 3x3 schema" + ) + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema13, VacuumConfigurationSchema16]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class Value82(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value83(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema40(BaseModel): + value: Union[Value82, Value83] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema38(BaseModel): + elements: List[AtomicElementSchema40] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema37(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema37(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema37(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema37] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema37] = Field( + default_factory=lambda: LatticeUnitsSchema37.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name304(Enum): + volume = "volume" + + +class Units120(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema37(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units120] = None + value: float + + +class Name305(Enum): + density = "density" + + +class Units121(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema37(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units121] = None + value: float + + +class Units122(Enum): + angstrom = "angstrom" + + +class ScalarSchema38(BaseModel): + units: Optional[Units122] = None + value: float + + +class Name306(Enum): + symmetry = "symmetry" + + +class SymmetrySchema37(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema38] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name307(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio37(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name308(Enum): + p_norm = "p-norm" + + +class PNorm37(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name309(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema37(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name310(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema37(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema37( + RootModel[ + Union[ + VolumeSchema37, + DensitySchema37, + SymmetrySchema37, + ElementalRatio37, + PNorm37, + InChIRepresentationSchema37, + InChIKeyRepresentationSchema37, + ] + ] +): + root: Union[ + VolumeSchema37, + DensitySchema37, + SymmetrySchema37, + ElementalRatio37, + PNorm37, + InChIRepresentationSchema37, + InChIKeyRepresentationSchema37, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema37(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name311(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema37(BaseModel): + name: Name311 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions37(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata37(BaseModel): + boundaryConditions: Optional[BoundaryConditions37] = None + + +class CrystalSchema37(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema38 = Field(..., title="basis schema") + lattice: LatticeSchema37 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema37]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema37] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema37]] = None + metadata: Optional[Metadata37] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema17(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema37 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class GrainBoundaryLinearConfigurationSchema(BaseModel): + stack_components: List[ + Union[ + Union[SlabConfigurationSchema, SlabStrainedSupercellConfigurationSchema], + Union[SlabConfigurationSchema8, SlabStrainedSupercellConfigurationSchema3], + VacuumConfigurationSchema17, + ] + ] = Field(..., max_length=2, min_length=2) + """ + Components of the interface: slab, slab and vacuum + """ + direction: Optional[AxisEnum] = Field("x", title="Axis Enum") + """ + Enum for axis types + """ + actual_angle: Optional[confloat(ge=0.0, le=360.0)] = None + """ + The actual angle between the two phases + """ + xy_shift: Optional[List[float]] = Field([0, 0], max_length=2, min_length=2, title="vector 2d schema") + """ + xy shift for the film as cartesian 2D vector on the xy plane. + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ diff --git a/dist/py/materials_category/defective_structures/two_dimensional/adatom/__init__.py b/dist/py/materials_category/defective_structures/two_dimensional/adatom/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category/defective_structures/two_dimensional/adatom/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category/defective_structures/two_dimensional/adatom/configuration.py b/dist/py/materials_category/defective_structures/two_dimensional/adatom/configuration.py new file mode 100644 index 000000000..8b2fb837b --- /dev/null +++ b/dist/py/materials_category/defective_structures/two_dimensional/adatom/configuration.py @@ -0,0 +1,2279 @@ +# generated by datamodel-codegen: +# filename: materials_category/defective_structures/two_dimensional/adatom/configuration.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint, constr + + +class ChemicalElements(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class TerminationSchema(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value47(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value47] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name161(Enum): + density = "density" + + +class Units67(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units67] = None + value: float + + +class Units68(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units68] = None + value: float + + +class Name162(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name163(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name164(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name165(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name166(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name167(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name167 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema(BaseModel): + termination_top: TerminationSchema = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class AxisEnum(Enum): + x = "x" + y = "y" + z = "z" + + +class Value48(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value49(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema23(BaseModel): + value: Union[Value48, Value49] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema21(BaseModel): + elements: List[AtomicElementSchema23] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema20(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema20(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema20(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema20] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema20] = Field( + default_factory=lambda: LatticeUnitsSchema20.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name168(Enum): + volume = "volume" + + +class Units69(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema20(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units69] = None + value: float + + +class Name169(Enum): + density = "density" + + +class Units70(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema20(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units70] = None + value: float + + +class Units71(Enum): + angstrom = "angstrom" + + +class ScalarSchema21(BaseModel): + units: Optional[Units71] = None + value: float + + +class Name170(Enum): + symmetry = "symmetry" + + +class SymmetrySchema20(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema21] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name171(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio20(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name172(Enum): + p_norm = "p-norm" + + +class PNorm20(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name173(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema20(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name174(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema20(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema20( + RootModel[ + Union[ + VolumeSchema20, + DensitySchema20, + SymmetrySchema20, + ElementalRatio20, + PNorm20, + InChIRepresentationSchema20, + InChIKeyRepresentationSchema20, + ] + ] +): + root: Union[ + VolumeSchema20, + DensitySchema20, + SymmetrySchema20, + ElementalRatio20, + PNorm20, + InChIRepresentationSchema20, + InChIKeyRepresentationSchema20, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema20(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name175(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema20(BaseModel): + name: Name175 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions20(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata20(BaseModel): + boundaryConditions: Optional[BoundaryConditions20] = None + + +class CrystalSchema20(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema21 = Field(..., title="basis schema") + lattice: LatticeSchema20 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema20]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema20] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema20]] = None + metadata: Optional[Metadata20] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema20 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class ObjectWithIdAndValueSchema(BaseModel): + value: float + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class SlabConfigurationSchema(BaseModel): + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema, VacuumConfigurationSchema]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class Value50(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value51(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema24(BaseModel): + value: Union[Value50, Value51] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema22(BaseModel): + elements: List[AtomicElementSchema24] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema21(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema21(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema21(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema21] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema21] = Field( + default_factory=lambda: LatticeUnitsSchema21.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name176(Enum): + volume = "volume" + + +class Units72(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema21(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units72] = None + value: float + + +class Name177(Enum): + density = "density" + + +class Units73(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema21(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units73] = None + value: float + + +class Units74(Enum): + angstrom = "angstrom" + + +class ScalarSchema22(BaseModel): + units: Optional[Units74] = None + value: float + + +class Name178(Enum): + symmetry = "symmetry" + + +class SymmetrySchema21(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema22] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name179(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio21(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name180(Enum): + p_norm = "p-norm" + + +class PNorm21(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name181(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema21(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name182(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema21(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema21( + RootModel[ + Union[ + VolumeSchema21, + DensitySchema21, + SymmetrySchema21, + ElementalRatio21, + PNorm21, + InChIRepresentationSchema21, + InChIKeyRepresentationSchema21, + ] + ] +): + root: Union[ + VolumeSchema21, + DensitySchema21, + SymmetrySchema21, + ElementalRatio21, + PNorm21, + InChIRepresentationSchema21, + InChIKeyRepresentationSchema21, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema21(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name183(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema21(BaseModel): + name: Name183 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions21(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata21(BaseModel): + boundaryConditions: Optional[BoundaryConditions21] = None + + +class CrystalSchema21(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema22 = Field(..., title="basis schema") + lattice: LatticeSchema21 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema21]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema21] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema21]] = None + metadata: Optional[Metadata21] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class ChemicalElement(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class AtomSchema(BaseModel): + chemical_element: ChemicalElement + + +class ChemicalElement2(Enum): + X = "X" + Vac = "Vac" + + +class VacancySchema(BaseModel): + chemical_element: Optional[ChemicalElement2] = "Vac" + """ + Extra elements, used for convenience purposed + """ + + +class PointDefectSiteSchema(BaseModel): + crystal: CrystalSchema21 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + element: Union[AtomSchema, VacancySchema] + + +class Value52(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value53(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema25(BaseModel): + value: Union[Value52, Value53] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema23(BaseModel): + elements: List[AtomicElementSchema25] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema22(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema22(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema22(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema22] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema22] = Field( + default_factory=lambda: LatticeUnitsSchema22.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name184(Enum): + volume = "volume" + + +class Units75(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema22(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units75] = None + value: float + + +class Name185(Enum): + density = "density" + + +class Units76(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema22(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units76] = None + value: float + + +class Units77(Enum): + angstrom = "angstrom" + + +class ScalarSchema23(BaseModel): + units: Optional[Units77] = None + value: float + + +class Name186(Enum): + symmetry = "symmetry" + + +class SymmetrySchema22(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema23] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name187(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio22(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name188(Enum): + p_norm = "p-norm" + + +class PNorm22(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name189(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema22(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name190(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema22(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema22( + RootModel[ + Union[ + VolumeSchema22, + DensitySchema22, + SymmetrySchema22, + ElementalRatio22, + PNorm22, + InChIRepresentationSchema22, + InChIKeyRepresentationSchema22, + ] + ] +): + root: Union[ + VolumeSchema22, + DensitySchema22, + SymmetrySchema22, + ElementalRatio22, + PNorm22, + InChIRepresentationSchema22, + InChIKeyRepresentationSchema22, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema22(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name191(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema22(BaseModel): + name: Name191 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions22(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata22(BaseModel): + boundaryConditions: Optional[BoundaryConditions22] = None + + +class CrystalSchema22(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema23 = Field(..., title="basis schema") + lattice: LatticeSchema22 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema22]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema22] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema22]] = None + metadata: Optional[Metadata22] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema9(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema22 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class AdatomDefectConfigurationSchema(BaseModel): + stack_components: List[Union[SlabConfigurationSchema, PointDefectSiteSchema, VacuumConfigurationSchema9]] = Field( + ..., max_length=3, min_length=3 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ diff --git a/dist/py/materials_category/defective_structures/two_dimensional/grain_boundary_planar/__init__.py b/dist/py/materials_category/defective_structures/two_dimensional/grain_boundary_planar/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category/defective_structures/two_dimensional/grain_boundary_planar/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.py b/dist/py/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.py new file mode 100644 index 000000000..41f3f81e7 --- /dev/null +++ b/dist/py/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.py @@ -0,0 +1,4611 @@ +# generated by datamodel-codegen: +# filename: materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint, constr + + +class AxisEnum(Enum): + x = "x" + y = "y" + z = "z" + + +class ChemicalElements(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class TerminationSchema(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value17(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value17] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name41(Enum): + density = "density" + + +class Units22(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units22] = None + value: float + + +class Units23(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units23] = None + value: float + + +class Name42(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name43(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name44(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name45(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name46(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name47(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name47 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema(BaseModel): + termination_top: TerminationSchema = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class Value18(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value19(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema8(BaseModel): + value: Union[Value18, Value19] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema6(BaseModel): + elements: List[AtomicElementSchema8] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema5(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema5(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema5(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema5] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema5] = Field( + default_factory=lambda: LatticeUnitsSchema5.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name48(Enum): + volume = "volume" + + +class Units24(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema5(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units24] = None + value: float + + +class Name49(Enum): + density = "density" + + +class Units25(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema5(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units25] = None + value: float + + +class Units26(Enum): + angstrom = "angstrom" + + +class ScalarSchema6(BaseModel): + units: Optional[Units26] = None + value: float + + +class Name50(Enum): + symmetry = "symmetry" + + +class SymmetrySchema5(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema6] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name51(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio5(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name52(Enum): + p_norm = "p-norm" + + +class PNorm5(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name53(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema5(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name54(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema5(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema5( + RootModel[ + Union[ + VolumeSchema5, + DensitySchema5, + SymmetrySchema5, + ElementalRatio5, + PNorm5, + InChIRepresentationSchema5, + InChIKeyRepresentationSchema5, + ] + ] +): + root: Union[ + VolumeSchema5, + DensitySchema5, + SymmetrySchema5, + ElementalRatio5, + PNorm5, + InChIRepresentationSchema5, + InChIKeyRepresentationSchema5, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema5(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name55(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema5(BaseModel): + name: Name55 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions5(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata5(BaseModel): + boundaryConditions: Optional[BoundaryConditions5] = None + + +class CrystalSchema5(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema6 = Field(..., title="basis schema") + lattice: LatticeSchema5 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema5]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema5] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema5]] = None + metadata: Optional[Metadata5] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema5 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class ObjectWithIdAndValueSchema(BaseModel): + value: float + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class SlabConfigurationSchema(BaseModel): + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema, VacuumConfigurationSchema]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class SupercellMatrix2DSchemaItem(RootModel[List[int]]): + root: List[int] + + +class ArrayOf3NumberElementsSchema(RootModel[List[float]]): + root: List[float] = Field(..., title="array of 3 number elements schema") + + +class TerminationSchema4(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value20(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value21(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema9(BaseModel): + value: Union[Value20, Value21] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema7(BaseModel): + elements: List[AtomicElementSchema9] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema6(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema6(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema6(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema6] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema6] = Field( + default_factory=lambda: LatticeUnitsSchema6.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name56(Enum): + volume = "volume" + + +class Units27(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema6(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units27] = None + value: float + + +class Name57(Enum): + density = "density" + + +class Units28(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema6(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units28] = None + value: float + + +class Units29(Enum): + angstrom = "angstrom" + + +class ScalarSchema7(BaseModel): + units: Optional[Units29] = None + value: float + + +class Name58(Enum): + symmetry = "symmetry" + + +class SymmetrySchema6(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema7] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name59(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio6(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name60(Enum): + p_norm = "p-norm" + + +class PNorm6(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name61(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema6(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name62(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema6(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema6( + RootModel[ + Union[ + VolumeSchema6, + DensitySchema6, + SymmetrySchema6, + ElementalRatio6, + PNorm6, + InChIRepresentationSchema6, + InChIKeyRepresentationSchema6, + ] + ] +): + root: Union[ + VolumeSchema6, + DensitySchema6, + SymmetrySchema6, + ElementalRatio6, + PNorm6, + InChIRepresentationSchema6, + InChIKeyRepresentationSchema6, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema6(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name63(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema6(BaseModel): + name: Name63 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions6(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata6(BaseModel): + boundaryConditions: Optional[BoundaryConditions6] = None + + +class CrystalSchema6(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema7 = Field(..., title="basis schema") + lattice: LatticeSchema6 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema6]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema6] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema6]] = None + metadata: Optional[Metadata6] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema2(BaseModel): + termination_top: TerminationSchema4 = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema6 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class Value22(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value23(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema10(BaseModel): + value: Union[Value22, Value23] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema8(BaseModel): + elements: List[AtomicElementSchema10] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema7(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema7(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema7(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema7] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema7] = Field( + default_factory=lambda: LatticeUnitsSchema7.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name64(Enum): + volume = "volume" + + +class Units30(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema7(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units30] = None + value: float + + +class Name65(Enum): + density = "density" + + +class Units31(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema7(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units31] = None + value: float + + +class Units32(Enum): + angstrom = "angstrom" + + +class ScalarSchema8(BaseModel): + units: Optional[Units32] = None + value: float + + +class Name66(Enum): + symmetry = "symmetry" + + +class SymmetrySchema7(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema8] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name67(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio7(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name68(Enum): + p_norm = "p-norm" + + +class PNorm7(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name69(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema7(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name70(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema7(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema7( + RootModel[ + Union[ + VolumeSchema7, + DensitySchema7, + SymmetrySchema7, + ElementalRatio7, + PNorm7, + InChIRepresentationSchema7, + InChIKeyRepresentationSchema7, + ] + ] +): + root: Union[ + VolumeSchema7, + DensitySchema7, + SymmetrySchema7, + ElementalRatio7, + PNorm7, + InChIRepresentationSchema7, + InChIKeyRepresentationSchema7, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema7(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name71(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema7(BaseModel): + name: Name71 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions7(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata7(BaseModel): + boundaryConditions: Optional[BoundaryConditions7] = None + + +class CrystalSchema7(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema8 = Field(..., title="basis schema") + lattice: LatticeSchema7 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema7]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema7] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema7]] = None + metadata: Optional[Metadata7] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema1(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema7 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class SlabStrainedSupercellConfigurationSchema(BaseModel): + xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field( + default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]], + max_length=2, + min_length=2, + title="Supercell Matrix 2D Schema", + ) + """ + Supercell matrix for xy plane transformations + """ + strain_matrix: List[ArrayOf3NumberElementsSchema] = Field( + ..., max_length=3, min_length=3, title="matrix 3x3 schema" + ) + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema2, VacuumConfigurationSchema1]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class TerminationSchema5(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value24(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value25(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema11(BaseModel): + value: Union[Value24, Value25] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema9(BaseModel): + elements: List[AtomicElementSchema11] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema8(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema8(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema8(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema8] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema8] = Field( + default_factory=lambda: LatticeUnitsSchema8.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name72(Enum): + volume = "volume" + + +class Units33(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema8(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units33] = None + value: float + + +class Name73(Enum): + density = "density" + + +class Units34(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema8(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units34] = None + value: float + + +class Units35(Enum): + angstrom = "angstrom" + + +class ScalarSchema9(BaseModel): + units: Optional[Units35] = None + value: float + + +class Name74(Enum): + symmetry = "symmetry" + + +class SymmetrySchema8(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema9] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name75(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio8(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name76(Enum): + p_norm = "p-norm" + + +class PNorm8(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name77(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema8(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name78(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema8(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema8( + RootModel[ + Union[ + VolumeSchema8, + DensitySchema8, + SymmetrySchema8, + ElementalRatio8, + PNorm8, + InChIRepresentationSchema8, + InChIKeyRepresentationSchema8, + ] + ] +): + root: Union[ + VolumeSchema8, + DensitySchema8, + SymmetrySchema8, + ElementalRatio8, + PNorm8, + InChIRepresentationSchema8, + InChIKeyRepresentationSchema8, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema8(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name79(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema8(BaseModel): + name: Name79 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions8(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata8(BaseModel): + boundaryConditions: Optional[BoundaryConditions8] = None + + +class CrystalSchema8(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema9 = Field(..., title="basis schema") + lattice: LatticeSchema8 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema8]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema8] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema8]] = None + metadata: Optional[Metadata8] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema3(BaseModel): + termination_top: TerminationSchema5 = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema8 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class Value26(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value27(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema12(BaseModel): + value: Union[Value26, Value27] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema10(BaseModel): + elements: List[AtomicElementSchema12] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema9(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema9(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema9(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema9] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema9] = Field( + default_factory=lambda: LatticeUnitsSchema9.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name80(Enum): + volume = "volume" + + +class Units36(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema9(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units36] = None + value: float + + +class Name81(Enum): + density = "density" + + +class Units37(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema9(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units37] = None + value: float + + +class Units38(Enum): + angstrom = "angstrom" + + +class ScalarSchema10(BaseModel): + units: Optional[Units38] = None + value: float + + +class Name82(Enum): + symmetry = "symmetry" + + +class SymmetrySchema9(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema10] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name83(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio9(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name84(Enum): + p_norm = "p-norm" + + +class PNorm9(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name85(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema9(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name86(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema9(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema9( + RootModel[ + Union[ + VolumeSchema9, + DensitySchema9, + SymmetrySchema9, + ElementalRatio9, + PNorm9, + InChIRepresentationSchema9, + InChIKeyRepresentationSchema9, + ] + ] +): + root: Union[ + VolumeSchema9, + DensitySchema9, + SymmetrySchema9, + ElementalRatio9, + PNorm9, + InChIRepresentationSchema9, + InChIKeyRepresentationSchema9, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema9(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name87(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema9(BaseModel): + name: Name87 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions9(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata9(BaseModel): + boundaryConditions: Optional[BoundaryConditions9] = None + + +class CrystalSchema9(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema10 = Field(..., title="basis schema") + lattice: LatticeSchema9 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema9]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema9] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema9]] = None + metadata: Optional[Metadata9] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema2(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema9 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class SlabConfigurationSchema1(BaseModel): + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema3, VacuumConfigurationSchema2]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class TerminationSchema6(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value28(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value29(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema13(BaseModel): + value: Union[Value28, Value29] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema11(BaseModel): + elements: List[AtomicElementSchema13] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema10(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema10(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema10(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema10] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema10] = Field( + default_factory=lambda: LatticeUnitsSchema10.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name88(Enum): + volume = "volume" + + +class Units39(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema10(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units39] = None + value: float + + +class Name89(Enum): + density = "density" + + +class Units40(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema10(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units40] = None + value: float + + +class Units41(Enum): + angstrom = "angstrom" + + +class ScalarSchema11(BaseModel): + units: Optional[Units41] = None + value: float + + +class Name90(Enum): + symmetry = "symmetry" + + +class SymmetrySchema10(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema11] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name91(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio10(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name92(Enum): + p_norm = "p-norm" + + +class PNorm10(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name93(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema10(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name94(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema10(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema10( + RootModel[ + Union[ + VolumeSchema10, + DensitySchema10, + SymmetrySchema10, + ElementalRatio10, + PNorm10, + InChIRepresentationSchema10, + InChIKeyRepresentationSchema10, + ] + ] +): + root: Union[ + VolumeSchema10, + DensitySchema10, + SymmetrySchema10, + ElementalRatio10, + PNorm10, + InChIRepresentationSchema10, + InChIKeyRepresentationSchema10, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema10(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name95(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema10(BaseModel): + name: Name95 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions10(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata10(BaseModel): + boundaryConditions: Optional[BoundaryConditions10] = None + + +class CrystalSchema10(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema11 = Field(..., title="basis schema") + lattice: LatticeSchema10 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema10]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema10] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema10]] = None + metadata: Optional[Metadata10] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema4(BaseModel): + termination_top: TerminationSchema6 = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema10 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class Value30(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value31(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema14(BaseModel): + value: Union[Value30, Value31] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema12(BaseModel): + elements: List[AtomicElementSchema14] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema11(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema11(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema11(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema11] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema11] = Field( + default_factory=lambda: LatticeUnitsSchema11.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name96(Enum): + volume = "volume" + + +class Units42(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema11(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units42] = None + value: float + + +class Name97(Enum): + density = "density" + + +class Units43(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema11(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units43] = None + value: float + + +class Units44(Enum): + angstrom = "angstrom" + + +class ScalarSchema12(BaseModel): + units: Optional[Units44] = None + value: float + + +class Name98(Enum): + symmetry = "symmetry" + + +class SymmetrySchema11(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema12] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name99(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio11(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name100(Enum): + p_norm = "p-norm" + + +class PNorm11(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name101(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema11(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name102(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema11(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema11( + RootModel[ + Union[ + VolumeSchema11, + DensitySchema11, + SymmetrySchema11, + ElementalRatio11, + PNorm11, + InChIRepresentationSchema11, + InChIKeyRepresentationSchema11, + ] + ] +): + root: Union[ + VolumeSchema11, + DensitySchema11, + SymmetrySchema11, + ElementalRatio11, + PNorm11, + InChIRepresentationSchema11, + InChIKeyRepresentationSchema11, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema11(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name103(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema11(BaseModel): + name: Name103 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions11(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata11(BaseModel): + boundaryConditions: Optional[BoundaryConditions11] = None + + +class CrystalSchema11(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema12 = Field(..., title="basis schema") + lattice: LatticeSchema11 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema11]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema11] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema11]] = None + metadata: Optional[Metadata11] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema3(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema11 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class SlabStrainedSupercellConfigurationSchema1(BaseModel): + xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field( + default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]], + max_length=2, + min_length=2, + title="Supercell Matrix 2D Schema", + ) + """ + Supercell matrix for xy plane transformations + """ + strain_matrix: List[ArrayOf3NumberElementsSchema] = Field( + ..., max_length=3, min_length=3, title="matrix 3x3 schema" + ) + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema4, VacuumConfigurationSchema3]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class Value32(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value33(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema15(BaseModel): + value: Union[Value32, Value33] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema13(BaseModel): + elements: List[AtomicElementSchema15] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema12(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema12(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema12(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema12] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema12] = Field( + default_factory=lambda: LatticeUnitsSchema12.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name104(Enum): + volume = "volume" + + +class Units45(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema12(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units45] = None + value: float + + +class Name105(Enum): + density = "density" + + +class Units46(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema12(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units46] = None + value: float + + +class Units47(Enum): + angstrom = "angstrom" + + +class ScalarSchema13(BaseModel): + units: Optional[Units47] = None + value: float + + +class Name106(Enum): + symmetry = "symmetry" + + +class SymmetrySchema12(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema13] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name107(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio12(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name108(Enum): + p_norm = "p-norm" + + +class PNorm12(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name109(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema12(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name110(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema12(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema12( + RootModel[ + Union[ + VolumeSchema12, + DensitySchema12, + SymmetrySchema12, + ElementalRatio12, + PNorm12, + InChIRepresentationSchema12, + InChIKeyRepresentationSchema12, + ] + ] +): + root: Union[ + VolumeSchema12, + DensitySchema12, + SymmetrySchema12, + ElementalRatio12, + PNorm12, + InChIRepresentationSchema12, + InChIKeyRepresentationSchema12, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema12(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name111(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema12(BaseModel): + name: Name111 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions12(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata12(BaseModel): + boundaryConditions: Optional[BoundaryConditions12] = None + + +class CrystalSchema12(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema13 = Field(..., title="basis schema") + lattice: LatticeSchema12 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema12]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema12] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema12]] = None + metadata: Optional[Metadata12] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema4(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema12 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class GrainBoundaryPlanarConfigurationSchema(BaseModel): + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + stack_components: List[ + Union[ + Union[SlabConfigurationSchema, SlabStrainedSupercellConfigurationSchema], + Union[SlabConfigurationSchema1, SlabStrainedSupercellConfigurationSchema1], + VacuumConfigurationSchema4, + ] + ] = Field(..., max_length=3, min_length=2) + """ + Components of the interface: slab, slab and vacuum + """ + xy_shift: Optional[List[float]] = Field([0, 0], max_length=2, min_length=2, title="vector 2d schema") + """ + xy shift for the film as cartesian 2D vector on the xy plane. + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ diff --git a/dist/py/materials_category/defective_structures/two_dimensional/island/__init__.py b/dist/py/materials_category/defective_structures/two_dimensional/island/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category/defective_structures/two_dimensional/island/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category/defective_structures/two_dimensional/island/configuration.py b/dist/py/materials_category/defective_structures/two_dimensional/island/configuration.py new file mode 100644 index 000000000..48e4d9528 --- /dev/null +++ b/dist/py/materials_category/defective_structures/two_dimensional/island/configuration.py @@ -0,0 +1,3172 @@ +# generated by datamodel-codegen: +# filename: materials_category/defective_structures/two_dimensional/island/configuration.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint, constr + + +class ChemicalElements(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class TerminationSchema(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value55(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value55] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name193(Enum): + density = "density" + + +class Units79(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units79] = None + value: float + + +class Units80(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units80] = None + value: float + + +class Name194(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name195(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name196(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name197(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name198(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name199(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name199 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema(BaseModel): + termination_top: TerminationSchema = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class AxisEnum(Enum): + x = "x" + y = "y" + z = "z" + + +class Value56(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value57(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema27(BaseModel): + value: Union[Value56, Value57] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema25(BaseModel): + elements: List[AtomicElementSchema27] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema24(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema24(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema24(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema24] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema24] = Field( + default_factory=lambda: LatticeUnitsSchema24.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name200(Enum): + volume = "volume" + + +class Units81(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema24(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units81] = None + value: float + + +class Name201(Enum): + density = "density" + + +class Units82(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema24(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units82] = None + value: float + + +class Units83(Enum): + angstrom = "angstrom" + + +class ScalarSchema25(BaseModel): + units: Optional[Units83] = None + value: float + + +class Name202(Enum): + symmetry = "symmetry" + + +class SymmetrySchema24(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema25] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name203(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio24(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name204(Enum): + p_norm = "p-norm" + + +class PNorm24(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name205(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema24(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name206(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema24(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema24( + RootModel[ + Union[ + VolumeSchema24, + DensitySchema24, + SymmetrySchema24, + ElementalRatio24, + PNorm24, + InChIRepresentationSchema24, + InChIKeyRepresentationSchema24, + ] + ] +): + root: Union[ + VolumeSchema24, + DensitySchema24, + SymmetrySchema24, + ElementalRatio24, + PNorm24, + InChIRepresentationSchema24, + InChIKeyRepresentationSchema24, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema24(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name207(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema24(BaseModel): + name: Name207 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions24(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata24(BaseModel): + boundaryConditions: Optional[BoundaryConditions24] = None + + +class CrystalSchema24(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema25 = Field(..., title="basis schema") + lattice: LatticeSchema24 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema24]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema24] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema24]] = None + metadata: Optional[Metadata24] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema24 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class ObjectWithIdAndValueSchema(BaseModel): + value: float + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class SlabConfigurationSchema(BaseModel): + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema, VacuumConfigurationSchema]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class TerminationSchema11(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value58(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value59(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema28(BaseModel): + value: Union[Value58, Value59] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema26(BaseModel): + elements: List[AtomicElementSchema28] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema25(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema25(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema25(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema25] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema25] = Field( + default_factory=lambda: LatticeUnitsSchema25.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name208(Enum): + volume = "volume" + + +class Units84(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema25(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units84] = None + value: float + + +class Name209(Enum): + density = "density" + + +class Units85(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema25(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units85] = None + value: float + + +class Units86(Enum): + angstrom = "angstrom" + + +class ScalarSchema26(BaseModel): + units: Optional[Units86] = None + value: float + + +class Name210(Enum): + symmetry = "symmetry" + + +class SymmetrySchema25(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema26] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name211(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio25(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name212(Enum): + p_norm = "p-norm" + + +class PNorm25(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name213(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema25(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name214(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema25(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema25( + RootModel[ + Union[ + VolumeSchema25, + DensitySchema25, + SymmetrySchema25, + ElementalRatio25, + PNorm25, + InChIRepresentationSchema25, + InChIKeyRepresentationSchema25, + ] + ] +): + root: Union[ + VolumeSchema25, + DensitySchema25, + SymmetrySchema25, + ElementalRatio25, + PNorm25, + InChIRepresentationSchema25, + InChIKeyRepresentationSchema25, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema25(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name215(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema25(BaseModel): + name: Name215 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions25(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata25(BaseModel): + boundaryConditions: Optional[BoundaryConditions25] = None + + +class CrystalSchema25(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema26 = Field(..., title="basis schema") + lattice: LatticeSchema25 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema25]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema25] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema25]] = None + metadata: Optional[Metadata25] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema9(BaseModel): + termination_top: TerminationSchema11 = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema25 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class Value60(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value61(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema29(BaseModel): + value: Union[Value60, Value61] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema27(BaseModel): + elements: List[AtomicElementSchema29] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema26(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema26(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema26(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema26] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema26] = Field( + default_factory=lambda: LatticeUnitsSchema26.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name216(Enum): + volume = "volume" + + +class Units87(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema26(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units87] = None + value: float + + +class Name217(Enum): + density = "density" + + +class Units88(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema26(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units88] = None + value: float + + +class Units89(Enum): + angstrom = "angstrom" + + +class ScalarSchema27(BaseModel): + units: Optional[Units89] = None + value: float + + +class Name218(Enum): + symmetry = "symmetry" + + +class SymmetrySchema26(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema27] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name219(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio26(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name220(Enum): + p_norm = "p-norm" + + +class PNorm26(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name221(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema26(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name222(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema26(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema26( + RootModel[ + Union[ + VolumeSchema26, + DensitySchema26, + SymmetrySchema26, + ElementalRatio26, + PNorm26, + InChIRepresentationSchema26, + InChIKeyRepresentationSchema26, + ] + ] +): + root: Union[ + VolumeSchema26, + DensitySchema26, + SymmetrySchema26, + ElementalRatio26, + PNorm26, + InChIRepresentationSchema26, + InChIKeyRepresentationSchema26, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema26(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name223(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema26(BaseModel): + name: Name223 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions26(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata26(BaseModel): + boundaryConditions: Optional[BoundaryConditions26] = None + + +class CrystalSchema26(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema27 = Field(..., title="basis schema") + lattice: LatticeSchema26 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema26]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema26] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema26]] = None + metadata: Optional[Metadata26] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema11(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema26 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class SlabConfigurationSchema6(BaseModel): + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema9, VacuumConfigurationSchema11]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class Value62(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value63(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema30(BaseModel): + value: Union[Value62, Value63] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema28(BaseModel): + elements: List[AtomicElementSchema30] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema27(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema27(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema27(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema27] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema27] = Field( + default_factory=lambda: LatticeUnitsSchema27.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name224(Enum): + volume = "volume" + + +class Units90(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema27(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units90] = None + value: float + + +class Name225(Enum): + density = "density" + + +class Units91(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema27(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units91] = None + value: float + + +class Units92(Enum): + angstrom = "angstrom" + + +class ScalarSchema28(BaseModel): + units: Optional[Units92] = None + value: float + + +class Name226(Enum): + symmetry = "symmetry" + + +class SymmetrySchema27(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema28] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name227(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio27(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name228(Enum): + p_norm = "p-norm" + + +class PNorm27(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name229(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema27(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name230(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema27(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema27( + RootModel[ + Union[ + VolumeSchema27, + DensitySchema27, + SymmetrySchema27, + ElementalRatio27, + PNorm27, + InChIRepresentationSchema27, + InChIKeyRepresentationSchema27, + ] + ] +): + root: Union[ + VolumeSchema27, + DensitySchema27, + SymmetrySchema27, + ElementalRatio27, + PNorm27, + InChIRepresentationSchema27, + InChIKeyRepresentationSchema27, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema27(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name231(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema27(BaseModel): + name: Name231 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions27(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata27(BaseModel): + boundaryConditions: Optional[BoundaryConditions27] = None + + +class CrystalSchema27(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema28 = Field(..., title="basis schema") + lattice: LatticeSchema27 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema27]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema27] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema27]] = None + metadata: Optional[Metadata27] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class CoordinateShapeEnum(Enum): + cylinder = "cylinder" + sphere = "sphere" + box = "box" + triangular_prism = "triangular_prism" + plane = "plane" + + +class BoxCoordinateConditionSchema(BaseModel): + shape: Literal["box"] = Field("box", title="Coordinate Shape Enum") + min_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + max_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + + +class SphereCoordinateConditionSchema(BaseModel): + shape: Literal["sphere"] = Field("sphere", title="Coordinate Shape Enum") + radius: confloat(ge=0.0) + + +class CylinderCoordinateConditionSchema(BaseModel): + shape: Literal["cylinder"] = Field("cylinder", title="Coordinate Shape Enum") + radius: confloat(ge=0.0) + min_z: float + max_z: float + + +class TriangularPrismCoordinateConditionSchema(BaseModel): + shape: Literal["triangular_prism"] = Field("triangular_prism", title="Coordinate Shape Enum") + position_on_surface_1: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + position_on_surface_2: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + position_on_surface_3: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + min_z: float + max_z: float + + +class PlaneCoordinateConditionSchema(BaseModel): + shape: Literal["plane"] = Field("plane", title="Coordinate Shape Enum") + plane_normal: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + plane_point_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + + +class VoidRegionSchema(BaseModel): + crystal: CrystalSchema27 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + coordinate_condition: Union[ + BoxCoordinateConditionSchema, + SphereCoordinateConditionSchema, + CylinderCoordinateConditionSchema, + TriangularPrismCoordinateConditionSchema, + PlaneCoordinateConditionSchema, + ] = Field(..., title="Coordinate Conditions Schema") + """ + Combined schema for all coordinate condition types + """ + + +class MergeMethodsEnum(Enum): + ADD = "ADD" + REPLACE = "REPLACE" + YIELD = "YIELD" + + +class MergeSchema(BaseModel): + merge_components: List[Union[SlabConfigurationSchema6, VoidRegionSchema]] = Field(..., max_length=2, min_length=2) + merge_method: Optional[MergeMethodsEnum] = Field("REPLACE", title="Merge Methods Enum") + """ + Available methods for merging components + """ + + +class Value64(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value65(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema31(BaseModel): + value: Union[Value64, Value65] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema29(BaseModel): + elements: List[AtomicElementSchema31] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema28(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema28(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema28(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema28] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema28] = Field( + default_factory=lambda: LatticeUnitsSchema28.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name232(Enum): + volume = "volume" + + +class Units93(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema28(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units93] = None + value: float + + +class Name233(Enum): + density = "density" + + +class Units94(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema28(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units94] = None + value: float + + +class Units95(Enum): + angstrom = "angstrom" + + +class ScalarSchema29(BaseModel): + units: Optional[Units95] = None + value: float + + +class Name234(Enum): + symmetry = "symmetry" + + +class SymmetrySchema28(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema29] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name235(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio28(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name236(Enum): + p_norm = "p-norm" + + +class PNorm28(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name237(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema28(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name238(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema28(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema28( + RootModel[ + Union[ + VolumeSchema28, + DensitySchema28, + SymmetrySchema28, + ElementalRatio28, + PNorm28, + InChIRepresentationSchema28, + InChIKeyRepresentationSchema28, + ] + ] +): + root: Union[ + VolumeSchema28, + DensitySchema28, + SymmetrySchema28, + ElementalRatio28, + PNorm28, + InChIRepresentationSchema28, + InChIKeyRepresentationSchema28, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema28(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name239(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema28(BaseModel): + name: Name239 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions28(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata28(BaseModel): + boundaryConditions: Optional[BoundaryConditions28] = None + + +class CrystalSchema28(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema29 = Field(..., title="basis schema") + lattice: LatticeSchema28 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema28]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema28] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema28]] = None + metadata: Optional[Metadata28] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema12(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema28 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class IslandDefectConfigurationSchema(BaseModel): + stack_components: List[Union[SlabConfigurationSchema, MergeSchema, VacuumConfigurationSchema12]] = Field( + ..., max_length=3, min_length=3 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ diff --git a/dist/py/materials_category/defective_structures/two_dimensional/terrace/__init__.py b/dist/py/materials_category/defective_structures/two_dimensional/terrace/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category/defective_structures/two_dimensional/terrace/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category/defective_structures/two_dimensional/terrace/configuration.py b/dist/py/materials_category/defective_structures/two_dimensional/terrace/configuration.py new file mode 100644 index 000000000..14ec27817 --- /dev/null +++ b/dist/py/materials_category/defective_structures/two_dimensional/terrace/configuration.py @@ -0,0 +1,3176 @@ +# generated by datamodel-codegen: +# filename: materials_category/defective_structures/two_dimensional/terrace/configuration.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint, constr + + +class ChemicalElements(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class TerminationSchema(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value35(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value35] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name113(Enum): + density = "density" + + +class Units49(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units49] = None + value: float + + +class Units50(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units50] = None + value: float + + +class Name114(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name115(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name116(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name117(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name118(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name119(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name119 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema(BaseModel): + termination_top: TerminationSchema = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class AxisEnum(Enum): + x = "x" + y = "y" + z = "z" + + +class Value36(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value37(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema17(BaseModel): + value: Union[Value36, Value37] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema15(BaseModel): + elements: List[AtomicElementSchema17] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema14(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema14(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema14(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema14] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema14] = Field( + default_factory=lambda: LatticeUnitsSchema14.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name120(Enum): + volume = "volume" + + +class Units51(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema14(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units51] = None + value: float + + +class Name121(Enum): + density = "density" + + +class Units52(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema14(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units52] = None + value: float + + +class Units53(Enum): + angstrom = "angstrom" + + +class ScalarSchema15(BaseModel): + units: Optional[Units53] = None + value: float + + +class Name122(Enum): + symmetry = "symmetry" + + +class SymmetrySchema14(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema15] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name123(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio14(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name124(Enum): + p_norm = "p-norm" + + +class PNorm14(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name125(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema14(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name126(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema14(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema14( + RootModel[ + Union[ + VolumeSchema14, + DensitySchema14, + SymmetrySchema14, + ElementalRatio14, + PNorm14, + InChIRepresentationSchema14, + InChIKeyRepresentationSchema14, + ] + ] +): + root: Union[ + VolumeSchema14, + DensitySchema14, + SymmetrySchema14, + ElementalRatio14, + PNorm14, + InChIRepresentationSchema14, + InChIKeyRepresentationSchema14, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema14(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name127(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema14(BaseModel): + name: Name127 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions14(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata14(BaseModel): + boundaryConditions: Optional[BoundaryConditions14] = None + + +class CrystalSchema14(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema15 = Field(..., title="basis schema") + lattice: LatticeSchema14 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema14]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema14] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema14]] = None + metadata: Optional[Metadata14] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema14 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class ObjectWithIdAndValueSchema(BaseModel): + value: float + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class SlabConfigurationSchema(BaseModel): + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema, VacuumConfigurationSchema]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class TerminationSchema8(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value38(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value39(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema18(BaseModel): + value: Union[Value38, Value39] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema16(BaseModel): + elements: List[AtomicElementSchema18] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema15(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema15(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema15(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema15] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema15] = Field( + default_factory=lambda: LatticeUnitsSchema15.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name128(Enum): + volume = "volume" + + +class Units54(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema15(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units54] = None + value: float + + +class Name129(Enum): + density = "density" + + +class Units55(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema15(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units55] = None + value: float + + +class Units56(Enum): + angstrom = "angstrom" + + +class ScalarSchema16(BaseModel): + units: Optional[Units56] = None + value: float + + +class Name130(Enum): + symmetry = "symmetry" + + +class SymmetrySchema15(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema16] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name131(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio15(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name132(Enum): + p_norm = "p-norm" + + +class PNorm15(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name133(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema15(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name134(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema15(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema15( + RootModel[ + Union[ + VolumeSchema15, + DensitySchema15, + SymmetrySchema15, + ElementalRatio15, + PNorm15, + InChIRepresentationSchema15, + InChIKeyRepresentationSchema15, + ] + ] +): + root: Union[ + VolumeSchema15, + DensitySchema15, + SymmetrySchema15, + ElementalRatio15, + PNorm15, + InChIRepresentationSchema15, + InChIKeyRepresentationSchema15, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema15(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name135(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema15(BaseModel): + name: Name135 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions15(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata15(BaseModel): + boundaryConditions: Optional[BoundaryConditions15] = None + + +class CrystalSchema15(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema16 = Field(..., title="basis schema") + lattice: LatticeSchema15 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema15]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema15] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema15]] = None + metadata: Optional[Metadata15] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema6(BaseModel): + termination_top: TerminationSchema8 = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema15 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class Value40(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value41(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema19(BaseModel): + value: Union[Value40, Value41] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema17(BaseModel): + elements: List[AtomicElementSchema19] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema16(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema16(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema16(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema16] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema16] = Field( + default_factory=lambda: LatticeUnitsSchema16.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name136(Enum): + volume = "volume" + + +class Units57(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema16(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units57] = None + value: float + + +class Name137(Enum): + density = "density" + + +class Units58(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema16(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units58] = None + value: float + + +class Units59(Enum): + angstrom = "angstrom" + + +class ScalarSchema17(BaseModel): + units: Optional[Units59] = None + value: float + + +class Name138(Enum): + symmetry = "symmetry" + + +class SymmetrySchema16(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema17] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name139(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio16(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name140(Enum): + p_norm = "p-norm" + + +class PNorm16(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name141(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema16(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name142(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema16(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema16( + RootModel[ + Union[ + VolumeSchema16, + DensitySchema16, + SymmetrySchema16, + ElementalRatio16, + PNorm16, + InChIRepresentationSchema16, + InChIKeyRepresentationSchema16, + ] + ] +): + root: Union[ + VolumeSchema16, + DensitySchema16, + SymmetrySchema16, + ElementalRatio16, + PNorm16, + InChIRepresentationSchema16, + InChIKeyRepresentationSchema16, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema16(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name143(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema16(BaseModel): + name: Name143 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions16(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata16(BaseModel): + boundaryConditions: Optional[BoundaryConditions16] = None + + +class CrystalSchema16(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema17 = Field(..., title="basis schema") + lattice: LatticeSchema16 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema16]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema16] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema16]] = None + metadata: Optional[Metadata16] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema6(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema16 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class SlabConfigurationSchema3(BaseModel): + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema6, VacuumConfigurationSchema6]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class Value42(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value43(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema20(BaseModel): + value: Union[Value42, Value43] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema18(BaseModel): + elements: List[AtomicElementSchema20] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema17(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema17(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema17(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema17] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema17] = Field( + default_factory=lambda: LatticeUnitsSchema17.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name144(Enum): + volume = "volume" + + +class Units60(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema17(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units60] = None + value: float + + +class Name145(Enum): + density = "density" + + +class Units61(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema17(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units61] = None + value: float + + +class Units62(Enum): + angstrom = "angstrom" + + +class ScalarSchema18(BaseModel): + units: Optional[Units62] = None + value: float + + +class Name146(Enum): + symmetry = "symmetry" + + +class SymmetrySchema17(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema18] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name147(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio17(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name148(Enum): + p_norm = "p-norm" + + +class PNorm17(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name149(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema17(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name150(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema17(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema17( + RootModel[ + Union[ + VolumeSchema17, + DensitySchema17, + SymmetrySchema17, + ElementalRatio17, + PNorm17, + InChIRepresentationSchema17, + InChIKeyRepresentationSchema17, + ] + ] +): + root: Union[ + VolumeSchema17, + DensitySchema17, + SymmetrySchema17, + ElementalRatio17, + PNorm17, + InChIRepresentationSchema17, + InChIKeyRepresentationSchema17, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema17(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name151(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema17(BaseModel): + name: Name151 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions17(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata17(BaseModel): + boundaryConditions: Optional[BoundaryConditions17] = None + + +class CrystalSchema17(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema18 = Field(..., title="basis schema") + lattice: LatticeSchema17 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema17]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema17] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema17]] = None + metadata: Optional[Metadata17] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class CoordinateShapeEnum(Enum): + cylinder = "cylinder" + sphere = "sphere" + box = "box" + triangular_prism = "triangular_prism" + plane = "plane" + + +class BoxCoordinateConditionSchema(BaseModel): + shape: Literal["box"] = Field("box", title="Coordinate Shape Enum") + min_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + max_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + + +class SphereCoordinateConditionSchema(BaseModel): + shape: Literal["sphere"] = Field("sphere", title="Coordinate Shape Enum") + radius: confloat(ge=0.0) + + +class CylinderCoordinateConditionSchema(BaseModel): + shape: Literal["cylinder"] = Field("cylinder", title="Coordinate Shape Enum") + radius: confloat(ge=0.0) + min_z: float + max_z: float + + +class TriangularPrismCoordinateConditionSchema(BaseModel): + shape: Literal["triangular_prism"] = Field("triangular_prism", title="Coordinate Shape Enum") + position_on_surface_1: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + position_on_surface_2: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + position_on_surface_3: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + min_z: float + max_z: float + + +class PlaneCoordinateConditionSchema(BaseModel): + shape: Literal["plane"] = Field("plane", title="Coordinate Shape Enum") + plane_normal: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + plane_point_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + + +class VoidRegionSchema(BaseModel): + crystal: CrystalSchema17 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + coordinate_condition: Union[ + BoxCoordinateConditionSchema, + SphereCoordinateConditionSchema, + CylinderCoordinateConditionSchema, + TriangularPrismCoordinateConditionSchema, + PlaneCoordinateConditionSchema, + ] = Field(..., title="Coordinate Conditions Schema") + """ + Combined schema for all coordinate condition types + """ + + +class MergeMethodsEnum(Enum): + ADD = "ADD" + REPLACE = "REPLACE" + YIELD = "YIELD" + + +class MergeSchema(BaseModel): + merge_components: List[Union[SlabConfigurationSchema3, VoidRegionSchema]] = Field(..., max_length=2, min_length=2) + merge_method: Optional[MergeMethodsEnum] = Field("REPLACE", title="Merge Methods Enum") + """ + Available methods for merging components + """ + + +class Value44(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value45(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema21(BaseModel): + value: Union[Value44, Value45] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema19(BaseModel): + elements: List[AtomicElementSchema21] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema18(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema18(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema18(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema18] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema18] = Field( + default_factory=lambda: LatticeUnitsSchema18.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name152(Enum): + volume = "volume" + + +class Units63(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema18(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units63] = None + value: float + + +class Name153(Enum): + density = "density" + + +class Units64(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema18(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units64] = None + value: float + + +class Units65(Enum): + angstrom = "angstrom" + + +class ScalarSchema19(BaseModel): + units: Optional[Units65] = None + value: float + + +class Name154(Enum): + symmetry = "symmetry" + + +class SymmetrySchema18(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema19] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name155(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio18(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name156(Enum): + p_norm = "p-norm" + + +class PNorm18(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name157(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema18(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name158(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema18(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema18( + RootModel[ + Union[ + VolumeSchema18, + DensitySchema18, + SymmetrySchema18, + ElementalRatio18, + PNorm18, + InChIRepresentationSchema18, + InChIKeyRepresentationSchema18, + ] + ] +): + root: Union[ + VolumeSchema18, + DensitySchema18, + SymmetrySchema18, + ElementalRatio18, + PNorm18, + InChIRepresentationSchema18, + InChIKeyRepresentationSchema18, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema18(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name159(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema18(BaseModel): + name: Name159 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions18(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata18(BaseModel): + boundaryConditions: Optional[BoundaryConditions18] = None + + +class CrystalSchema18(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema19 = Field(..., title="basis schema") + lattice: LatticeSchema18 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema18]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema18] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema18]] = None + metadata: Optional[Metadata18] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema7(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema18 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class TerraceDefectConfigurationSchema(BaseModel): + stack_components: List[Union[SlabConfigurationSchema, MergeSchema, VacuumConfigurationSchema7]] = Field( + ..., max_length=3, min_length=3 + ) + cut_direction: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ diff --git a/dist/py/materials_category/defective_structures/zero_dimensional/point_defect/__init__.py b/dist/py/materials_category/defective_structures/zero_dimensional/point_defect/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category/defective_structures/zero_dimensional/point_defect/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.py b/dist/py/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.py new file mode 100644 index 000000000..cd29ae0bc --- /dev/null +++ b/dist/py/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.py @@ -0,0 +1,571 @@ +# generated by datamodel-codegen: +# filename: materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value13(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value13] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name31(Enum): + density = "density" + + +class Units18(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units18] = None + value: float + + +class Units19(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units19] = None + value: float + + +class Name32(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name33(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name34(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name35(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name36(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name37(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name37 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class MergeMethodsEnum(Enum): + ADD = "ADD" + REPLACE = "REPLACE" + YIELD = "YIELD" + + +class PointDefectBaseConfigurationSchema(BaseModel): + merge_components: List[CrystalSchema] = Field(..., max_length=2, min_length=2) + merge_method: Optional[MergeMethodsEnum] = Field("REPLACE", title="Merge Methods Enum") + """ + Available methods for merging components + """ diff --git a/dist/py/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.py b/dist/py/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.py new file mode 100644 index 000000000..dc6ee3e9f --- /dev/null +++ b/dist/py/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.py @@ -0,0 +1,1165 @@ +# generated by datamodel-codegen: +# filename: materials_category/defective_structures/zero_dimensional/point_defect/interstitial.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value122(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value122] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name537(Enum): + density = "density" + + +class Units239(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units239] = None + value: float + + +class Units240(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units240] = None + value: float + + +class Name538(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name539(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name540(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name541(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name542(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name543(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name543 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class Value123(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value124(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema60(BaseModel): + value: Union[Value123, Value124] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema58(BaseModel): + elements: List[AtomicElementSchema60] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema57(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema57(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema57(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema57] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema57] = Field( + default_factory=lambda: LatticeUnitsSchema57.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name544(Enum): + volume = "volume" + + +class Units241(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema58(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units241] = None + value: float + + +class Name545(Enum): + density = "density" + + +class Units242(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema59(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units242] = None + value: float + + +class Units243(Enum): + angstrom = "angstrom" + + +class ScalarSchema73(BaseModel): + units: Optional[Units243] = None + value: float + + +class Name546(Enum): + symmetry = "symmetry" + + +class SymmetrySchema58(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema73] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name547(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio59(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name548(Enum): + p_norm = "p-norm" + + +class PNorm58(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name549(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema59(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name550(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema59(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema59( + RootModel[ + Union[ + VolumeSchema58, + DensitySchema59, + SymmetrySchema58, + ElementalRatio59, + PNorm58, + InChIRepresentationSchema59, + InChIKeyRepresentationSchema59, + ] + ] +): + root: Union[ + VolumeSchema58, + DensitySchema59, + SymmetrySchema58, + ElementalRatio59, + PNorm58, + InChIRepresentationSchema59, + InChIKeyRepresentationSchema59, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema58(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name551(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema58(BaseModel): + name: Name551 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions57(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata57(BaseModel): + boundaryConditions: Optional[BoundaryConditions57] = None + + +class CrystalSchema55(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema58 = Field(..., title="basis schema") + lattice: LatticeSchema57 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema59]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema58] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema58]] = None + metadata: Optional[Metadata57] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class ChemicalElement(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class AtomSchema(BaseModel): + chemical_element: ChemicalElement + + +class ChemicalElement7(Enum): + X = "X" + Vac = "Vac" + + +class VacancySchema(BaseModel): + chemical_element: Optional[ChemicalElement7] = "Vac" + """ + Extra elements, used for convenience purposed + """ + + +class PointDefectSiteSchema(BaseModel): + crystal: CrystalSchema55 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + element: Union[AtomSchema, VacancySchema] + + +class MergeMethodsEnum(Enum): + ADD = "ADD" + REPLACE = "REPLACE" + YIELD = "YIELD" + + +class InterstitialPointDefectSchema(BaseModel): + merge_components: List[Union[CrystalSchema, PointDefectSiteSchema]] = Field(..., max_length=2, min_length=2) + merge_method: Optional[MergeMethodsEnum] = Field("REPLACE", title="Merge Methods Enum") + """ + Available methods for merging components + """ diff --git a/dist/py/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.py b/dist/py/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.py new file mode 100644 index 000000000..9f073ed4d --- /dev/null +++ b/dist/py/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.py @@ -0,0 +1,1165 @@ +# generated by datamodel-codegen: +# filename: materials_category/defective_structures/zero_dimensional/point_defect/substitutional.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value165(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value165] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name717(Enum): + density = "density" + + +class Units312(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units312] = None + value: float + + +class Units313(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units313] = None + value: float + + +class Name718(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name719(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name720(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name721(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name722(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name723(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name723 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class Value166(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value167(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema79(BaseModel): + value: Union[Value166, Value167] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema77(BaseModel): + elements: List[AtomicElementSchema79] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema77(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema77(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema77(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema77] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema77] = Field( + default_factory=lambda: LatticeUnitsSchema77.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name724(Enum): + volume = "volume" + + +class Units314(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema77(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units314] = None + value: float + + +class Name725(Enum): + density = "density" + + +class Units315(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema78(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units315] = None + value: float + + +class Units316(Enum): + angstrom = "angstrom" + + +class ScalarSchema93(BaseModel): + units: Optional[Units316] = None + value: float + + +class Name726(Enum): + symmetry = "symmetry" + + +class SymmetrySchema77(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema93] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name727(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio78(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name728(Enum): + p_norm = "p-norm" + + +class PNorm78(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name729(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema78(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name730(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema78(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema78( + RootModel[ + Union[ + VolumeSchema77, + DensitySchema78, + SymmetrySchema77, + ElementalRatio78, + PNorm78, + InChIRepresentationSchema78, + InChIKeyRepresentationSchema78, + ] + ] +): + root: Union[ + VolumeSchema77, + DensitySchema78, + SymmetrySchema77, + ElementalRatio78, + PNorm78, + InChIRepresentationSchema78, + InChIKeyRepresentationSchema78, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema77(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name731(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema77(BaseModel): + name: Name731 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions76(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata76(BaseModel): + boundaryConditions: Optional[BoundaryConditions76] = None + + +class CrystalSchema72(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema77 = Field(..., title="basis schema") + lattice: LatticeSchema77 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema78]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema77] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema77]] = None + metadata: Optional[Metadata76] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class ChemicalElement(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class AtomSchema(BaseModel): + chemical_element: ChemicalElement + + +class ChemicalElement11(Enum): + X = "X" + Vac = "Vac" + + +class VacancySchema(BaseModel): + chemical_element: Optional[ChemicalElement11] = "Vac" + """ + Extra elements, used for convenience purposed + """ + + +class PointDefectSiteSchema(BaseModel): + crystal: CrystalSchema72 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + element: Union[AtomSchema, VacancySchema] + + +class MergeMethodsEnum(Enum): + ADD = "ADD" + REPLACE = "REPLACE" + YIELD = "YIELD" + + +class SubstitutionalPointDefectSchema(BaseModel): + merge_components: List[Union[CrystalSchema, PointDefectSiteSchema]] = Field(..., max_length=2, min_length=2) + merge_method: Optional[MergeMethodsEnum] = Field("REPLACE", title="Merge Methods Enum") + """ + Available methods for merging components + """ diff --git a/dist/py/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.py b/dist/py/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.py new file mode 100644 index 000000000..0d9baf852 --- /dev/null +++ b/dist/py/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.py @@ -0,0 +1,583 @@ +# generated by datamodel-codegen: +# filename: materials_category/defective_structures/zero_dimensional/point_defect/vacancy.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value171(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value171] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name760(Enum): + density = "density" + + +class Units328(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units328] = None + value: float + + +class Units329(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units329] = None + value: float + + +class Name761(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name762(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name763(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name764(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name765(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name766(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name766 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class ChemicalElement(Enum): + X = "X" + Vac = "Vac" + + +class VacancySchema(BaseModel): + chemical_element: Optional[ChemicalElement] = "Vac" + """ + Extra elements, used for convenience purposed + """ + + +class MergeMethodsEnum(Enum): + ADD = "ADD" + REPLACE = "REPLACE" + YIELD = "YIELD" + + +class VacancyPointDefectSchema(BaseModel): + merge_components: List[Union[CrystalSchema, VacancySchema]] = Field(..., max_length=2, min_length=2) + merge_method: Optional[MergeMethodsEnum] = Field("REPLACE", title="Merge Methods Enum") + """ + Available methods for merging components + """ diff --git a/dist/py/materials_category/pristine_structures/three_dimensional/__init__.py b/dist/py/materials_category/pristine_structures/three_dimensional/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category/pristine_structures/three_dimensional/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category/pristine_structures/three_dimensional/ideal_crystal.py b/dist/py/materials_category/pristine_structures/three_dimensional/ideal_crystal.py new file mode 100644 index 000000000..6f844d3c6 --- /dev/null +++ b/dist/py/materials_category/pristine_structures/three_dimensional/ideal_crystal.py @@ -0,0 +1,557 @@ +# generated by datamodel-codegen: +# filename: materials_category/pristine_structures/three_dimensional/ideal_crystal.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value120(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value120] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name527(Enum): + density = "density" + + +class Units236(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units236] = None + value: float + + +class Units237(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units237] = None + value: float + + +class Name528(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name529(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name530(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name531(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name532(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name533(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name533 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class IdealCrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ diff --git a/dist/py/materials_category/pristine_structures/two_dimensional/__init__.py b/dist/py/materials_category/pristine_structures/two_dimensional/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category/pristine_structures/two_dimensional/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category/pristine_structures/two_dimensional/nanoribbon.py b/dist/py/materials_category/pristine_structures/two_dimensional/nanoribbon.py new file mode 100644 index 000000000..e9dd54e9e --- /dev/null +++ b/dist/py/materials_category/pristine_structures/two_dimensional/nanoribbon.py @@ -0,0 +1,1706 @@ +# generated by datamodel-codegen: +# filename: materials_category/pristine_structures/two_dimensional/nanoribbon.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint, constr + + +class ChemicalElements(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class TerminationSchema(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class TerminationSchema23(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value129(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value129] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name573(Enum): + density = "density" + + +class Units254(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units254] = None + value: float + + +class Units255(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units255] = None + value: float + + +class Name574(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name575(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name576(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name577(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name578(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name579(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name579 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class CrystalLatticeLinesUniqueRepeatedSchema(BaseModel): + termination_top: TerminationSchema = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + termination_bottom: Optional[TerminationSchema23] = Field(None, title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions_width: Optional[conint(ge=1)] = 1 + """ + Number of repetitions in width direction + """ + number_of_repetitions_length: Optional[conint(ge=1)] = 1 + """ + Number of repetitions in length direction + """ + miller_indices_2d: List[int] = Field(..., max_length=2, min_length=2, title="2D Miller Indices Schema") + """ + The (u,v) Miller indices for the line direction + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class AxisEnum(Enum): + x = "x" + y = "y" + z = "z" + + +class Value130(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value131(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema63(BaseModel): + value: Union[Value130, Value131] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema61(BaseModel): + elements: List[AtomicElementSchema63] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema61(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema61(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema61(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema61] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema61] = Field( + default_factory=lambda: LatticeUnitsSchema61.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name580(Enum): + volume = "volume" + + +class Units256(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema61(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units256] = None + value: float + + +class Name581(Enum): + density = "density" + + +class Units257(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema62(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units257] = None + value: float + + +class Units258(Enum): + angstrom = "angstrom" + + +class ScalarSchema76(BaseModel): + units: Optional[Units258] = None + value: float + + +class Name582(Enum): + symmetry = "symmetry" + + +class SymmetrySchema61(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema76] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name583(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio62(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name584(Enum): + p_norm = "p-norm" + + +class PNorm61(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name585(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema62(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name586(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema62(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema62( + RootModel[ + Union[ + VolumeSchema61, + DensitySchema62, + SymmetrySchema61, + ElementalRatio62, + PNorm61, + InChIRepresentationSchema62, + InChIKeyRepresentationSchema62, + ] + ] +): + root: Union[ + VolumeSchema61, + DensitySchema62, + SymmetrySchema61, + ElementalRatio62, + PNorm61, + InChIRepresentationSchema62, + InChIKeyRepresentationSchema62, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema61(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name587(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema61(BaseModel): + name: Name587 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions60(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata60(BaseModel): + boundaryConditions: Optional[BoundaryConditions60] = None + + +class CrystalSchema57(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema61 = Field(..., title="basis schema") + lattice: LatticeSchema61 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema62]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema61] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema61]] = None + metadata: Optional[Metadata60] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema57 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class ObjectWithIdAndValueSchema(BaseModel): + value: float + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class NanoTapeConfigurationSchema(BaseModel): + stack_components: List[Union[CrystalLatticeLinesUniqueRepeatedSchema, VacuumConfigurationSchema]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("y", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class Value132(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value133(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema64(BaseModel): + value: Union[Value132, Value133] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema62(BaseModel): + elements: List[AtomicElementSchema64] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema62(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema62(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema62(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema62] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema62] = Field( + default_factory=lambda: LatticeUnitsSchema62.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name588(Enum): + volume = "volume" + + +class Units259(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema62(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units259] = None + value: float + + +class Name589(Enum): + density = "density" + + +class Units260(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema63(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units260] = None + value: float + + +class Units261(Enum): + angstrom = "angstrom" + + +class ScalarSchema77(BaseModel): + units: Optional[Units261] = None + value: float + + +class Name590(Enum): + symmetry = "symmetry" + + +class SymmetrySchema62(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema77] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name591(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio63(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name592(Enum): + p_norm = "p-norm" + + +class PNorm62(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name593(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema63(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name594(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema63(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema63( + RootModel[ + Union[ + VolumeSchema62, + DensitySchema63, + SymmetrySchema62, + ElementalRatio63, + PNorm62, + InChIRepresentationSchema63, + InChIKeyRepresentationSchema63, + ] + ] +): + root: Union[ + VolumeSchema62, + DensitySchema63, + SymmetrySchema62, + ElementalRatio63, + PNorm62, + InChIRepresentationSchema63, + InChIKeyRepresentationSchema63, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema62(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name595(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema62(BaseModel): + name: Name595 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions61(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata61(BaseModel): + boundaryConditions: Optional[BoundaryConditions61] = None + + +class CrystalSchema58(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema62 = Field(..., title="basis schema") + lattice: LatticeSchema62 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema63]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema62] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema62]] = None + metadata: Optional[Metadata61] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema24(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema58 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class NanoribbonConfigurationSchema(BaseModel): + stack_components: List[Union[NanoTapeConfigurationSchema, VacuumConfigurationSchema24]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("x", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ diff --git a/dist/py/materials_category/pristine_structures/two_dimensional/nanotape.py b/dist/py/materials_category/pristine_structures/two_dimensional/nanotape.py new file mode 100644 index 000000000..2b45bc1ac --- /dev/null +++ b/dist/py/materials_category/pristine_structures/two_dimensional/nanotape.py @@ -0,0 +1,1229 @@ +# generated by datamodel-codegen: +# filename: materials_category/pristine_structures/two_dimensional/nanotape.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint, constr + + +class ChemicalElements(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class TerminationSchema(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class TerminationSchema25(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value135(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value135] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name597(Enum): + density = "density" + + +class Units263(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units263] = None + value: float + + +class Units264(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units264] = None + value: float + + +class Name598(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name599(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name600(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name601(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name602(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name603(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name603 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class CrystalLatticeLinesUniqueRepeatedSchema(BaseModel): + termination_top: TerminationSchema = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + termination_bottom: Optional[TerminationSchema25] = Field(None, title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions_width: Optional[conint(ge=1)] = 1 + """ + Number of repetitions in width direction + """ + number_of_repetitions_length: Optional[conint(ge=1)] = 1 + """ + Number of repetitions in length direction + """ + miller_indices_2d: List[int] = Field(..., max_length=2, min_length=2, title="2D Miller Indices Schema") + """ + The (u,v) Miller indices for the line direction + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class AxisEnum(Enum): + x = "x" + y = "y" + z = "z" + + +class Value136(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value137(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema66(BaseModel): + value: Union[Value136, Value137] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema64(BaseModel): + elements: List[AtomicElementSchema66] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema64(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema64(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema64(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema64] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema64] = Field( + default_factory=lambda: LatticeUnitsSchema64.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name604(Enum): + volume = "volume" + + +class Units265(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema64(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units265] = None + value: float + + +class Name605(Enum): + density = "density" + + +class Units266(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema65(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units266] = None + value: float + + +class Units267(Enum): + angstrom = "angstrom" + + +class ScalarSchema79(BaseModel): + units: Optional[Units267] = None + value: float + + +class Name606(Enum): + symmetry = "symmetry" + + +class SymmetrySchema64(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema79] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name607(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio65(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name608(Enum): + p_norm = "p-norm" + + +class PNorm64(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name609(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema65(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name610(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema65(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema65( + RootModel[ + Union[ + VolumeSchema64, + DensitySchema65, + SymmetrySchema64, + ElementalRatio65, + PNorm64, + InChIRepresentationSchema65, + InChIKeyRepresentationSchema65, + ] + ] +): + root: Union[ + VolumeSchema64, + DensitySchema65, + SymmetrySchema64, + ElementalRatio65, + PNorm64, + InChIRepresentationSchema65, + InChIKeyRepresentationSchema65, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema64(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name611(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema64(BaseModel): + name: Name611 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions63(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata63(BaseModel): + boundaryConditions: Optional[BoundaryConditions63] = None + + +class CrystalSchema60(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema64 = Field(..., title="basis schema") + lattice: LatticeSchema64 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema65]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema64] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema64]] = None + metadata: Optional[Metadata63] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema60 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class ObjectWithIdAndValueSchema(BaseModel): + value: float + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class NanoTapeConfigurationSchema(BaseModel): + stack_components: List[Union[CrystalLatticeLinesUniqueRepeatedSchema, VacuumConfigurationSchema]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("y", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ diff --git a/dist/py/materials_category/pristine_structures/two_dimensional/slab.py b/dist/py/materials_category/pristine_structures/two_dimensional/slab.py new file mode 100644 index 000000000..735fe31a8 --- /dev/null +++ b/dist/py/materials_category/pristine_structures/two_dimensional/slab.py @@ -0,0 +1,1208 @@ +# generated by datamodel-codegen: +# filename: materials_category/pristine_structures/two_dimensional/slab.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint, constr + + +class ChemicalElements(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class TerminationSchema(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value147(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value147] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name643(Enum): + density = "density" + + +class Units284(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units284] = None + value: float + + +class Units285(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units285] = None + value: float + + +class Name644(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name645(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name646(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name647(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name648(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name649(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name649 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema(BaseModel): + termination_top: TerminationSchema = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class AxisEnum(Enum): + x = "x" + y = "y" + z = "z" + + +class Value148(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value149(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema70(BaseModel): + value: Union[Value148, Value149] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema68(BaseModel): + elements: List[AtomicElementSchema70] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema68(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema68(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema68(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema68] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema68] = Field( + default_factory=lambda: LatticeUnitsSchema68.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name650(Enum): + volume = "volume" + + +class Units286(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema68(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units286] = None + value: float + + +class Name651(Enum): + density = "density" + + +class Units287(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema69(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units287] = None + value: float + + +class Units288(Enum): + angstrom = "angstrom" + + +class ScalarSchema84(BaseModel): + units: Optional[Units288] = None + value: float + + +class Name652(Enum): + symmetry = "symmetry" + + +class SymmetrySchema68(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema84] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name653(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio69(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name654(Enum): + p_norm = "p-norm" + + +class PNorm69(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name655(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema69(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name656(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema69(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema69( + RootModel[ + Union[ + VolumeSchema68, + DensitySchema69, + SymmetrySchema68, + ElementalRatio69, + PNorm69, + InChIRepresentationSchema69, + InChIKeyRepresentationSchema69, + ] + ] +): + root: Union[ + VolumeSchema68, + DensitySchema69, + SymmetrySchema68, + ElementalRatio69, + PNorm69, + InChIRepresentationSchema69, + InChIKeyRepresentationSchema69, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema68(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name657(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema68(BaseModel): + name: Name657 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions67(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata67(BaseModel): + boundaryConditions: Optional[BoundaryConditions67] = None + + +class CrystalSchema63(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema68 = Field(..., title="basis schema") + lattice: LatticeSchema68 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema69]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema68] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema68]] = None + metadata: Optional[Metadata67] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema63 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class ObjectWithIdAndValueSchema(BaseModel): + value: float + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class SlabConfigurationSchema(BaseModel): + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema, VacuumConfigurationSchema]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ diff --git a/dist/py/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.py b/dist/py/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.py new file mode 100644 index 000000000..9bddf2967 --- /dev/null +++ b/dist/py/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.py @@ -0,0 +1,1228 @@ +# generated by datamodel-codegen: +# filename: materials_category/pristine_structures/two_dimensional/slab_strained_supercell.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint, constr + + +class SupercellMatrix2DSchemaItem(RootModel[List[int]]): + root: List[int] + + +class ArrayOf3NumberElementsSchema(RootModel[List[float]]): + root: List[float] = Field(..., title="array of 3 number elements schema") + + +class ChemicalElements(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class TerminationSchema(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value157(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value157] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name683(Enum): + density = "density" + + +class Units299(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units299] = None + value: float + + +class Units300(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units300] = None + value: float + + +class Name684(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name685(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name686(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name687(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name688(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name689(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name689 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema(BaseModel): + termination_top: TerminationSchema = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class AxisEnum(Enum): + x = "x" + y = "y" + z = "z" + + +class Value158(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value159(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema75(BaseModel): + value: Union[Value158, Value159] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema73(BaseModel): + elements: List[AtomicElementSchema75] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema73(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema73(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema73(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema73] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema73] = Field( + default_factory=lambda: LatticeUnitsSchema73.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name690(Enum): + volume = "volume" + + +class Units301(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema73(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units301] = None + value: float + + +class Name691(Enum): + density = "density" + + +class Units302(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema74(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units302] = None + value: float + + +class Units303(Enum): + angstrom = "angstrom" + + +class ScalarSchema89(BaseModel): + units: Optional[Units303] = None + value: float + + +class Name692(Enum): + symmetry = "symmetry" + + +class SymmetrySchema73(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema89] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name693(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio74(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name694(Enum): + p_norm = "p-norm" + + +class PNorm74(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name695(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema74(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name696(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema74(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema74( + RootModel[ + Union[ + VolumeSchema73, + DensitySchema74, + SymmetrySchema73, + ElementalRatio74, + PNorm74, + InChIRepresentationSchema74, + InChIKeyRepresentationSchema74, + ] + ] +): + root: Union[ + VolumeSchema73, + DensitySchema74, + SymmetrySchema73, + ElementalRatio74, + PNorm74, + InChIRepresentationSchema74, + InChIKeyRepresentationSchema74, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema73(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name697(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema73(BaseModel): + name: Name697 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions72(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata72(BaseModel): + boundaryConditions: Optional[BoundaryConditions72] = None + + +class CrystalSchema68(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema73 = Field(..., title="basis schema") + lattice: LatticeSchema73 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema74]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema73] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema73]] = None + metadata: Optional[Metadata72] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema68 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class ObjectWithIdAndValueSchema(BaseModel): + value: float + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class SlabStrainedSupercellConfigurationSchema(BaseModel): + xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field( + default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]], + max_length=2, + min_length=2, + title="Supercell Matrix 2D Schema", + ) + """ + Supercell matrix for xy plane transformations + """ + strain_matrix: List[ArrayOf3NumberElementsSchema] = Field( + ..., max_length=3, min_length=3, title="matrix 3x3 schema" + ) + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema, VacuumConfigurationSchema]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ diff --git a/dist/py/materials_category/processed_structures/two_dimensional/passivation/__init__.py b/dist/py/materials_category/processed_structures/two_dimensional/passivation/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category/processed_structures/two_dimensional/passivation/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category/processed_structures/two_dimensional/passivation/configuration.py b/dist/py/materials_category/processed_structures/two_dimensional/passivation/configuration.py new file mode 100644 index 000000000..b7d3a1c08 --- /dev/null +++ b/dist/py/materials_category/processed_structures/two_dimensional/passivation/configuration.py @@ -0,0 +1,1298 @@ +# generated by datamodel-codegen: +# filename: materials_category/processed_structures/two_dimensional/passivation/configuration.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value103(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value103] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name385(Enum): + density = "density" + + +class Units151(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units151] = None + value: float + + +class Units152(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units152] = None + value: float + + +class Name386(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name387(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name388(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name389(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name390(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name391(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name391 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class MaterialSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class Value104(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value105(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema51(BaseModel): + value: Union[Value104, Value105] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema49(BaseModel): + elements: List[AtomicElementSchema51] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema48(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema48(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema48(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema48] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema48] = Field( + default_factory=lambda: LatticeUnitsSchema48.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name392(Enum): + volume = "volume" + + +class Units153(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema48(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units153] = None + value: float + + +class Name393(Enum): + density = "density" + + +class Units154(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema48(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units154] = None + value: float + + +class Units155(Enum): + angstrom = "angstrom" + + +class ScalarSchema49(BaseModel): + units: Optional[Units155] = None + value: float + + +class Name394(Enum): + symmetry = "symmetry" + + +class SymmetrySchema48(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema49] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name395(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio48(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name396(Enum): + p_norm = "p-norm" + + +class PNorm48(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name397(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema48(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name398(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema48(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema48( + RootModel[ + Union[ + VolumeSchema48, + DensitySchema48, + SymmetrySchema48, + ElementalRatio48, + PNorm48, + InChIRepresentationSchema48, + InChIKeyRepresentationSchema48, + ] + ] +): + root: Union[ + VolumeSchema48, + DensitySchema48, + SymmetrySchema48, + ElementalRatio48, + PNorm48, + InChIRepresentationSchema48, + InChIKeyRepresentationSchema48, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema48(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name399(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema48(BaseModel): + name: Name399 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions48(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata48(BaseModel): + boundaryConditions: Optional[BoundaryConditions48] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema49 = Field(..., title="basis schema") + lattice: LatticeSchema48 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema48]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema48] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema48]] = None + metadata: Optional[Metadata48] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class ChemicalElement(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class AtomSchema(BaseModel): + chemical_element: ChemicalElement + + +class ChemicalElement4(Enum): + X = "X" + Vac = "Vac" + + +class VacancySchema(BaseModel): + chemical_element: Optional[ChemicalElement4] = "Vac" + """ + Extra elements, used for convenience purposed + """ + + +class PointDefectSiteSchema(BaseModel): + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + element: Union[AtomSchema, VacancySchema] + + +class MergeMethodsEnum(Enum): + ADD = "ADD" + REPLACE = "REPLACE" + YIELD = "YIELD" + + +class ChemicalElement5(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class AtomSchema3(BaseModel): + chemical_element: ChemicalElement5 + + +class PassivationConfigurationSchema(BaseModel): + merge_components: List[Union[MaterialSchema, PointDefectSiteSchema]] = Field(..., min_length=2) + merge_method: Optional[MergeMethodsEnum] = Field("ADD", title="Merge Methods Enum") + """ + Available methods for merging components + """ + passivant: AtomSchema3 = Field(..., title="Atom Schema") + """ + A chemical element that can be placed at a crystal site + """ + bond_length: Optional[float] = 1 + """ + The bond length for the passivating atoms + """ diff --git a/dist/py/materials_category_components/entities/auxiliary/one_dimensional/__init__.py b/dist/py/materials_category_components/entities/auxiliary/one_dimensional/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category_components/entities/auxiliary/one_dimensional/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category_components/entities/auxiliary/one_dimensional/miller_indices_2d.py b/dist/py/materials_category_components/entities/auxiliary/one_dimensional/miller_indices_2d.py new file mode 100644 index 000000000..924d92a86 --- /dev/null +++ b/dist/py/materials_category_components/entities/auxiliary/one_dimensional/miller_indices_2d.py @@ -0,0 +1,16 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/auxiliary/one_dimensional/miller_indices_2d.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import Field, RootModel + + +class Field2DMillerIndicesSchema(RootModel[List[int]]): + root: List[int] = Field(..., max_length=2, min_length=2, title="2D Miller Indices Schema") + """ + The (u,v) Miller indices for the line direction + """ diff --git a/dist/py/materials_category_components/entities/auxiliary/three_dimensional/__init__.py b/dist/py/materials_category_components/entities/auxiliary/three_dimensional/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category_components/entities/auxiliary/three_dimensional/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category_components/entities/auxiliary/three_dimensional/supercell_matrix_3d.py b/dist/py/materials_category_components/entities/auxiliary/three_dimensional/supercell_matrix_3d.py new file mode 100644 index 000000000..9276d869a --- /dev/null +++ b/dist/py/materials_category_components/entities/auxiliary/three_dimensional/supercell_matrix_3d.py @@ -0,0 +1,27 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/auxiliary/three_dimensional/supercell_matrix_3d.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import Field, RootModel + + +class ArrayOf3IntegerElementsSchema(RootModel[List[int]]): + root: List[int] = Field(..., title="array of 3 integer elements schema") + + +class SupercellMatrix3DSchema(RootModel[Optional[List[ArrayOf3IntegerElementsSchema]]]): + root: Optional[List[ArrayOf3IntegerElementsSchema]] = Field( + default_factory=lambda: [ + ArrayOf3IntegerElementsSchema.model_validate(v) for v in [[1, 0, 0], [0, 1, 0], [0, 0, 1]] + ], + max_length=3, + min_length=3, + title="Supercell Matrix 3D Schema", + ) + """ + 3x3 matrix of integers for transforming a unit cell into a supercell + """ diff --git a/dist/py/materials_category_components/entities/auxiliary/two_dimensional/__init__.py b/dist/py/materials_category_components/entities/auxiliary/two_dimensional/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category_components/entities/auxiliary/two_dimensional/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category_components/entities/auxiliary/two_dimensional/miller_indices.py b/dist/py/materials_category_components/entities/auxiliary/two_dimensional/miller_indices.py new file mode 100644 index 000000000..879beec9e --- /dev/null +++ b/dist/py/materials_category_components/entities/auxiliary/two_dimensional/miller_indices.py @@ -0,0 +1,16 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/auxiliary/two_dimensional/miller_indices.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import Field, RootModel + + +class MillerIndicesSchema(RootModel[Optional[List[int]]]): + root: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ diff --git a/dist/py/materials_category_components/entities/auxiliary/two_dimensional/supercell_matrix_2d.py b/dist/py/materials_category_components/entities/auxiliary/two_dimensional/supercell_matrix_2d.py new file mode 100644 index 000000000..d5963d16e --- /dev/null +++ b/dist/py/materials_category_components/entities/auxiliary/two_dimensional/supercell_matrix_2d.py @@ -0,0 +1,25 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/auxiliary/two_dimensional/supercell_matrix_2d.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import Field, RootModel + + +class SupercellMatrix2DSchemaItem(RootModel[List[int]]): + root: List[int] + + +class SupercellMatrix2DSchema(RootModel[Optional[List[SupercellMatrix2DSchemaItem]]]): + root: Optional[List[SupercellMatrix2DSchemaItem]] = Field( + default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]], + max_length=2, + min_length=2, + title="Supercell Matrix 2D Schema", + ) + """ + Supercell matrix for xy plane transformations + """ diff --git a/dist/py/materials_category_components/entities/auxiliary/two_dimensional/termination.py b/dist/py/materials_category_components/entities/auxiliary/two_dimensional/termination.py new file mode 100644 index 000000000..210f953ae --- /dev/null +++ b/dist/py/materials_category_components/entities/auxiliary/two_dimensional/termination.py @@ -0,0 +1,144 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/auxiliary/two_dimensional/termination.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Union + +from pydantic import BaseModel, Field, constr + + +class ChemicalElements(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class TerminationSchema(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ diff --git a/dist/py/materials_category_components/entities/auxiliary/zero_dimensional/__init__.py b/dist/py/materials_category_components/entities/auxiliary/zero_dimensional/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category_components/entities/auxiliary/zero_dimensional/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py b/dist/py/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py new file mode 100644 index 000000000..8a323ee04 --- /dev/null +++ b/dist/py/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py @@ -0,0 +1,565 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value117(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value117] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name443(Enum): + density = "density" + + +class Units172(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units172] = None + value: float + + +class Units173(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units173] = None + value: float + + +class Name444(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name445(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name446(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name447(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name448(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name449(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name449 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class CrystalSiteSchema(BaseModel): + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") diff --git a/dist/py/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.py b/dist/py/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.py new file mode 100644 index 000000000..b29415a37 --- /dev/null +++ b/dist/py/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.py @@ -0,0 +1,703 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value141(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value141] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name625(Enum): + density = "density" + + +class Units276(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units276] = None + value: float + + +class Units277(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units277] = None + value: float + + +class Name626(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name627(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name628(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name629(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name630(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name631(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name631 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class ChemicalElement(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class AtomSchema(BaseModel): + chemical_element: ChemicalElement + + +class ChemicalElement9(Enum): + X = "X" + Vac = "Vac" + + +class VacancySchema(BaseModel): + chemical_element: Optional[ChemicalElement9] = "Vac" + """ + Extra elements, used for convenience purposed + """ + + +class PointDefectSiteSchema(BaseModel): + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + element: Union[AtomSchema, VacancySchema] diff --git a/dist/py/materials_category_components/entities/auxiliary/zero_dimensional/void_region.py b/dist/py/materials_category_components/entities/auxiliary/zero_dimensional/void_region.py new file mode 100644 index 000000000..05bbc8332 --- /dev/null +++ b/dist/py/materials_category_components/entities/auxiliary/zero_dimensional/void_region.py @@ -0,0 +1,621 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/auxiliary/zero_dimensional/void_region.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value175(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value175] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name779(Enum): + density = "density" + + +class Units338(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units338] = None + value: float + + +class Units339(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units339] = None + value: float + + +class Name780(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name781(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name782(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name783(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name784(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name785(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name785 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class CoordinateShapeEnum(Enum): + cylinder = "cylinder" + sphere = "sphere" + box = "box" + triangular_prism = "triangular_prism" + plane = "plane" + + +class BoxCoordinateConditionSchema(BaseModel): + shape: Literal["box"] = Field("box", title="Coordinate Shape Enum") + min_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + max_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + + +class SphereCoordinateConditionSchema(BaseModel): + shape: Literal["sphere"] = Field("sphere", title="Coordinate Shape Enum") + radius: confloat(ge=0.0) + + +class CylinderCoordinateConditionSchema(BaseModel): + shape: Literal["cylinder"] = Field("cylinder", title="Coordinate Shape Enum") + radius: confloat(ge=0.0) + min_z: float + max_z: float + + +class TriangularPrismCoordinateConditionSchema(BaseModel): + shape: Literal["triangular_prism"] = Field("triangular_prism", title="Coordinate Shape Enum") + position_on_surface_1: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + position_on_surface_2: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + position_on_surface_3: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + min_z: float + max_z: float + + +class PlaneCoordinateConditionSchema(BaseModel): + shape: Literal["plane"] = Field("plane", title="Coordinate Shape Enum") + plane_normal: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + plane_point_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + + +class VoidRegionSchema(BaseModel): + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + coordinate_condition: Union[ + BoxCoordinateConditionSchema, + SphereCoordinateConditionSchema, + CylinderCoordinateConditionSchema, + TriangularPrismCoordinateConditionSchema, + PlaneCoordinateConditionSchema, + ] = Field(..., title="Coordinate Conditions Schema") + """ + Combined schema for all coordinate condition types + """ diff --git a/dist/py/materials_category_components/entities/core/three_dimensional/__init__.py b/dist/py/materials_category_components/entities/core/three_dimensional/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category_components/entities/core/three_dimensional/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category_components/entities/core/three_dimensional/crystal.py b/dist/py/materials_category_components/entities/core/three_dimensional/crystal.py new file mode 100644 index 000000000..87ed15167 --- /dev/null +++ b/dist/py/materials_category_components/entities/core/three_dimensional/crystal.py @@ -0,0 +1,557 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/core/three_dimensional/crystal.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value107(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value107] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name403(Enum): + density = "density" + + +class Units157(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units157] = None + value: float + + +class Units158(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units158] = None + value: float + + +class Name404(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name405(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name406(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name407(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name408(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name409(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name409 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ diff --git a/dist/py/materials_category_components/entities/core/three_dimensional/void.py b/dist/py/materials_category_components/entities/core/three_dimensional/void.py new file mode 100644 index 000000000..59ac90ced --- /dev/null +++ b/dist/py/materials_category_components/entities/core/three_dimensional/void.py @@ -0,0 +1,71 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/core/three_dimensional/void.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Literal, Union + +from pydantic import BaseModel, Field, confloat + + +class CoordinateShapeEnum(Enum): + cylinder = "cylinder" + sphere = "sphere" + box = "box" + triangular_prism = "triangular_prism" + plane = "plane" + + +class BoxCoordinateConditionSchema(BaseModel): + shape: Literal["box"] = Field("box", title="Coordinate Shape Enum") + min_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + max_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + + +class SphereCoordinateConditionSchema(BaseModel): + shape: Literal["sphere"] = Field("sphere", title="Coordinate Shape Enum") + radius: confloat(ge=0.0) + + +class CylinderCoordinateConditionSchema(BaseModel): + shape: Literal["cylinder"] = Field("cylinder", title="Coordinate Shape Enum") + radius: confloat(ge=0.0) + min_z: float + max_z: float + + +class TriangularPrismCoordinateConditionSchema(BaseModel): + shape: Literal["triangular_prism"] = Field("triangular_prism", title="Coordinate Shape Enum") + position_on_surface_1: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + position_on_surface_2: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + position_on_surface_3: List[float] = Field( + ..., max_length=2, min_length=2, title="array of 2 number elements schema" + ) + min_z: float + max_z: float + + +class PlaneCoordinateConditionSchema(BaseModel): + shape: Literal["plane"] = Field("plane", title="Coordinate Shape Enum") + plane_normal: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + plane_point_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + + +class VoidSchema(BaseModel): + center_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + shape: Union[ + BoxCoordinateConditionSchema, + SphereCoordinateConditionSchema, + CylinderCoordinateConditionSchema, + TriangularPrismCoordinateConditionSchema, + PlaneCoordinateConditionSchema, + ] = Field(..., title="Coordinate Conditions Schema") + """ + Combined schema for all coordinate condition types + """ diff --git a/dist/py/materials_category_components/entities/core/two_dimensional/__init__.py b/dist/py/materials_category_components/entities/core/two_dimensional/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category_components/entities/core/two_dimensional/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category_components/entities/core/two_dimensional/vacuum.py b/dist/py/materials_category_components/entities/core/two_dimensional/vacuum.py new file mode 100644 index 000000000..753917cc3 --- /dev/null +++ b/dist/py/materials_category_components/entities/core/two_dimensional/vacuum.py @@ -0,0 +1,578 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/core/two_dimensional/vacuum.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class AxisEnum(Enum): + x = "x" + y = "y" + z = "z" + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value173(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value173] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name768(Enum): + density = "density" + + +class Units331(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units331] = None + value: float + + +class Units332(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units332] = None + value: float + + +class Name769(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name770(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name771(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name772(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name773(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name774(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name774 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ diff --git a/dist/py/materials_category_components/entities/core/zero_dimensional/__init__.py b/dist/py/materials_category_components/entities/core/zero_dimensional/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category_components/entities/core/zero_dimensional/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category_components/entities/core/zero_dimensional/atom.py b/dist/py/materials_category_components/entities/core/zero_dimensional/atom.py new file mode 100644 index 000000000..aa82177d8 --- /dev/null +++ b/dist/py/materials_category_components/entities/core/zero_dimensional/atom.py @@ -0,0 +1,134 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/core/zero_dimensional/atom.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class ChemicalElement(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class AtomSchema(BaseModel): + chemical_element: ChemicalElement diff --git a/dist/py/materials_category_components/entities/core/zero_dimensional/vacancy.py b/dist/py/materials_category_components/entities/core/zero_dimensional/vacancy.py new file mode 100644 index 000000000..17d545a30 --- /dev/null +++ b/dist/py/materials_category_components/entities/core/zero_dimensional/vacancy.py @@ -0,0 +1,22 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/core/zero_dimensional/vacancy.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel + + +class ChemicalElement(Enum): + X = "X" + Vac = "Vac" + + +class VacancySchema(BaseModel): + chemical_element: Optional[ChemicalElement] = "Vac" + """ + Extra elements, used for convenience purposed + """ diff --git a/dist/py/materials_category_components/entities/reusable/one_dimensional/__init__.py b/dist/py/materials_category_components/entities/reusable/one_dimensional/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category_components/entities/reusable/one_dimensional/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.py b/dist/py/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.py new file mode 100644 index 000000000..107c257a4 --- /dev/null +++ b/dist/py/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.py @@ -0,0 +1,572 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value111(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value111] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name419(Enum): + density = "density" + + +class Units163(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units163] = None + value: float + + +class Units164(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units164] = None + value: float + + +class Name420(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name421(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name422(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name423(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name424(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name425(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name425 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class CrystalLatticeLinesSchema(BaseModel): + miller_indices_2d: List[int] = Field(..., max_length=2, min_length=2, title="2D Miller Indices Schema") + """ + The (u,v) Miller indices for the line direction + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ diff --git a/dist/py/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.py b/dist/py/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.py new file mode 100644 index 000000000..aeb94200f --- /dev/null +++ b/dist/py/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.py @@ -0,0 +1,735 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint, constr + + +class ChemicalElements(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class TerminationSchema(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class TerminationSchema21(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value113(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value113] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name427(Enum): + density = "density" + + +class Units166(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units166] = None + value: float + + +class Units167(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units167] = None + value: float + + +class Name428(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name429(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name430(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name431(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name432(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name433(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name433 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class CrystalLatticeLinesUniqueRepeatedSchema(BaseModel): + termination_top: TerminationSchema = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + termination_bottom: Optional[TerminationSchema21] = Field(None, title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions_width: Optional[conint(ge=1)] = 1 + """ + Number of repetitions in width direction + """ + number_of_repetitions_length: Optional[conint(ge=1)] = 1 + """ + Number of repetitions in length direction + """ + miller_indices_2d: List[int] = Field(..., max_length=2, min_length=2, title="2D Miller Indices Schema") + """ + The (u,v) Miller indices for the line direction + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ diff --git a/dist/py/materials_category_components/entities/reusable/three_dimensional/__init__.py b/dist/py/materials_category_components/entities/reusable/three_dimensional/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category_components/entities/reusable/three_dimensional/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.py b/dist/py/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.py new file mode 100644 index 000000000..84702670e --- /dev/null +++ b/dist/py/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.py @@ -0,0 +1,568 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value109(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value109] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name411(Enum): + density = "density" + + +class Units160(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units160] = None + value: float + + +class Units161(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units161] = None + value: float + + +class Name412(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name413(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name414(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name415(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name416(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name417(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name417 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class CrystalLatticeBaseSchema(BaseModel): + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ diff --git a/dist/py/materials_category_components/entities/reusable/three_dimensional/repetitions.py b/dist/py/materials_category_components/entities/reusable/three_dimensional/repetitions.py new file mode 100644 index 000000000..11d62f888 --- /dev/null +++ b/dist/py/materials_category_components/entities/reusable/three_dimensional/repetitions.py @@ -0,0 +1,25 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/reusable/three_dimensional/repetitions.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import Field, RootModel, conint + + +class CrystalRepetitionsSchemaItem(RootModel[conint(ge=1)]): + root: conint(ge=1) + + +class CrystalRepetitionsSchema(RootModel[Optional[List[CrystalRepetitionsSchemaItem]]]): + root: Optional[List[CrystalRepetitionsSchemaItem]] = Field( + default_factory=lambda: [CrystalRepetitionsSchemaItem.model_validate(v) for v in [1, 1, 1]], + max_length=3, + min_length=3, + title="Crystal Repetitions Schema", + ) + """ + Number of unit cells to repeat in each direction for a crystal structure. + """ diff --git a/dist/py/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py b/dist/py/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py new file mode 100644 index 000000000..02387a544 --- /dev/null +++ b/dist/py/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py @@ -0,0 +1,571 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value161(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value161] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name700(Enum): + density = "density" + + +class Units305(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units305] = None + value: float + + +class Units306(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units306] = None + value: float + + +class Name701(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name702(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name703(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name704(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name705(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name706(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name706 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class ArrayOf3NumberElementsSchema(RootModel[List[float]]): + root: List[float] = Field(..., title="array of 3 number elements schema") + + +class NonUniformlyStrainedCrystalConfigurationSchema(BaseModel): + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + strain_matrix: List[ArrayOf3NumberElementsSchema] = Field( + ..., max_length=3, min_length=3, title="matrix 3x3 schema" + ) diff --git a/dist/py/materials_category_components/entities/reusable/three_dimensional/strained_uniform.py b/dist/py/materials_category_components/entities/reusable/three_dimensional/strained_uniform.py new file mode 100644 index 000000000..7f235558d --- /dev/null +++ b/dist/py/materials_category_components/entities/reusable/three_dimensional/strained_uniform.py @@ -0,0 +1,568 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/reusable/three_dimensional/strained_uniform.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value163(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value163] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name708(Enum): + density = "density" + + +class Units308(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units308] = None + value: float + + +class Units309(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units309] = None + value: float + + +class Name709(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name710(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name711(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name712(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name713(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name714(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name714 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class UniformlyStrainedCrystalConfigurationSchema(BaseModel): + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + strain_percentage: float + """ + Percentage of uniform strain to apply to the crystal structure + """ diff --git a/dist/py/materials_category_components/entities/reusable/three_dimensional/supercell.py b/dist/py/materials_category_components/entities/reusable/three_dimensional/supercell.py new file mode 100644 index 000000000..3a55833b1 --- /dev/null +++ b/dist/py/materials_category_components/entities/reusable/three_dimensional/supercell.py @@ -0,0 +1,569 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/reusable/three_dimensional/supercell.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value169(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value169] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name733(Enum): + density = "density" + + +class Units318(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units318] = None + value: float + + +class Units319(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units319] = None + value: float + + +class Name734(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name735(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name736(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name737(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name738(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name739(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name739 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class ArrayOf3NumberElementsSchema(RootModel[List[float]]): + root: List[float] = Field(..., title="array of 3 number elements schema") + + +class SupercellConfigurationSchema(BaseModel): + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + matrix: List[ArrayOf3NumberElementsSchema] = Field(..., max_length=3, min_length=3, title="matrix 3x3 schema") diff --git a/dist/py/materials_category_components/entities/reusable/two_dimensional/__init__.py b/dist/py/materials_category_components/entities/reusable/two_dimensional/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category_components/entities/reusable/two_dimensional/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category_components/entities/reusable/two_dimensional/atomic_layers.py b/dist/py/materials_category_components/entities/reusable/two_dimensional/atomic_layers.py new file mode 100644 index 000000000..757a38c8f --- /dev/null +++ b/dist/py/materials_category_components/entities/reusable/two_dimensional/atomic_layers.py @@ -0,0 +1,710 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/reusable/two_dimensional/atomic_layers.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint, constr + + +class ChemicalElements(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class TerminationSchema(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value5(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value5] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name3(Enum): + density = "density" + + +class Units2(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units2] = None + value: float + + +class Units3(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units3] = None + value: float + + +class Name4(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name5(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name6(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name7(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name8(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name9(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name9 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersSchema(BaseModel): + terminations: List[TerminationSchema] = Field(..., min_length=1) + """ + All possible terminations for this orientation. + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ diff --git a/dist/py/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.py b/dist/py/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.py new file mode 100644 index 000000000..c0463bbe8 --- /dev/null +++ b/dist/py/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.py @@ -0,0 +1,710 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint, constr + + +class ChemicalElements(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class TerminationSchema(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value7(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value7] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name11(Enum): + density = "density" + + +class Units5(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units5] = None + value: float + + +class Units6(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units6] = None + value: float + + +class Name12(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name13(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name14(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name15(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name16(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name17(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name17 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueSchema(BaseModel): + terminations: List[TerminationSchema] = Field(..., min_length=1) + """ + All possible terminations for this orientation. + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ diff --git a/dist/py/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.py b/dist/py/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.py new file mode 100644 index 000000000..c48f51e61 --- /dev/null +++ b/dist/py/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.py @@ -0,0 +1,714 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint, constr + + +class ChemicalElements(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class TerminationSchema(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value9(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value9] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name19(Enum): + density = "density" + + +class Units8(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units8] = None + value: float + + +class Units9(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units9] = None + value: float + + +class Name20(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name21(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name22(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name23(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name24(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name25(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name25 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema(BaseModel): + termination_top: TerminationSchema = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ diff --git a/dist/py/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py b/dist/py/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py new file mode 100644 index 000000000..884d875e0 --- /dev/null +++ b/dist/py/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py @@ -0,0 +1,572 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value115(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value115] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name435(Enum): + density = "density" + + +class Units169(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units169] = None + value: float + + +class Units170(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units170] = None + value: float + + +class Name436(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name437(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name438(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name439(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name440(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name441(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name441 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class CrystalLatticePlanesSchema(BaseModel): + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ diff --git a/dist/py/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.py b/dist/py/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.py new file mode 100644 index 000000000..5b382dd0f --- /dev/null +++ b/dist/py/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.py @@ -0,0 +1,1685 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint, constr + + +class ChemicalElements(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class TerminationSchema(BaseModel): + chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field( + ..., title="Chemical Elements" + ) + """ + Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO') + """ + space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label") + """ + Space group symmetry designation for the termination + """ + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value151(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value151] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name659(Enum): + density = "density" + + +class Units290(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units290] = None + value: float + + +class Units291(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units291] = None + value: float + + +class Name660(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name661(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name662(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name663(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name664(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name665(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name665 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class CrystalSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class AtomicLayersUniqueRepeatedSchema(BaseModel): + termination_top: TerminationSchema = Field(..., title="Termination Schema") + """ + Defines a specific termination of a slab + """ + number_of_repetitions: conint(ge=1) + """ + Number of repetitions of the unique atomic layers + """ + miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema") + """ + Miller indices [h, k, l] defining crystallographic planes + """ + crystal: CrystalSchema = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + use_conventional_cell: Optional[bool] = True + """ + Use the conventional cell for the crystal structure + """ + + +class AxisEnum(Enum): + x = "x" + y = "y" + z = "z" + + +class Value152(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value153(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema72(BaseModel): + value: Union[Value152, Value153] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema70(BaseModel): + elements: List[AtomicElementSchema72] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema70(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema70(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema70(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema70] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema70] = Field( + default_factory=lambda: LatticeUnitsSchema70.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name666(Enum): + volume = "volume" + + +class Units292(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema70(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units292] = None + value: float + + +class Name667(Enum): + density = "density" + + +class Units293(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema71(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units293] = None + value: float + + +class Units294(Enum): + angstrom = "angstrom" + + +class ScalarSchema86(BaseModel): + units: Optional[Units294] = None + value: float + + +class Name668(Enum): + symmetry = "symmetry" + + +class SymmetrySchema70(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema86] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name669(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio71(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name670(Enum): + p_norm = "p-norm" + + +class PNorm71(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name671(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema71(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name672(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema71(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema71( + RootModel[ + Union[ + VolumeSchema70, + DensitySchema71, + SymmetrySchema70, + ElementalRatio71, + PNorm71, + InChIRepresentationSchema71, + InChIKeyRepresentationSchema71, + ] + ] +): + root: Union[ + VolumeSchema70, + DensitySchema71, + SymmetrySchema70, + ElementalRatio71, + PNorm71, + InChIRepresentationSchema71, + InChIKeyRepresentationSchema71, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema70(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name673(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema70(BaseModel): + name: Name673 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions69(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata69(BaseModel): + boundaryConditions: Optional[BoundaryConditions69] = None + + +class CrystalSchema65(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema70 = Field(..., title="basis schema") + lattice: LatticeSchema70 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema71]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema70] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema70]] = None + metadata: Optional[Metadata69] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema65 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class ObjectWithIdAndValueSchema(BaseModel): + value: float + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class SlabConfigurationSchema(BaseModel): + stack_components: List[Union[AtomicLayersUniqueRepeatedSchema, VacuumConfigurationSchema]] = Field( + ..., max_length=2, min_length=2 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ + + +class Value154(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value155(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema73(BaseModel): + value: Union[Value154, Value155] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema71(BaseModel): + elements: List[AtomicElementSchema73] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsSchema71(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeUnitsSchema71(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema71(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema71] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema71] = Field( + default_factory=lambda: LatticeUnitsSchema71.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name674(Enum): + volume = "volume" + + +class Units295(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema71(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units295] = None + value: float + + +class Name675(Enum): + density = "density" + + +class Units296(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema72(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units296] = None + value: float + + +class Units297(Enum): + angstrom = "angstrom" + + +class ScalarSchema87(BaseModel): + units: Optional[Units297] = None + value: float + + +class Name676(Enum): + symmetry = "symmetry" + + +class SymmetrySchema71(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema87] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name677(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio72(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name678(Enum): + p_norm = "p-norm" + + +class PNorm72(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name679(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema72(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name680(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema72(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema72( + RootModel[ + Union[ + VolumeSchema71, + DensitySchema72, + SymmetrySchema71, + ElementalRatio72, + PNorm72, + InChIRepresentationSchema72, + InChIKeyRepresentationSchema72, + ] + ] +): + root: Union[ + VolumeSchema71, + DensitySchema72, + SymmetrySchema71, + ElementalRatio72, + PNorm72, + InChIRepresentationSchema72, + InChIKeyRepresentationSchema72, + ] = Field(..., discriminator="name") + + +class DatabaseSourceSchema71(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class Name681(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class MaterialConsistencyCheckSchema71(BaseModel): + name: Name681 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class BoundaryConditions70(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata70(BaseModel): + boundaryConditions: Optional[BoundaryConditions70] = None + + +class CrystalSchema66(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema71 = Field(..., title="basis schema") + lattice: LatticeSchema71 = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema72]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema71] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema71]] = None + metadata: Optional[Metadata70] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class VacuumConfigurationSchema28(BaseModel): + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + size: Optional[confloat(ge=0.0)] = 10 + """ + Size of the vacuum slab in angstroms + """ + crystal: CrystalSchema66 = Field(..., title="Crystal Schema") + """ + A crystal structure, referencing the base material schema + """ + + +class SlabStackConfigurationSchema(BaseModel): + stack_components: List[Union[SlabConfigurationSchema, Dict[str, Any], VacuumConfigurationSchema28]] = Field( + ..., max_length=3, min_length=3 + ) + direction: Optional[AxisEnum] = Field("z", title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ diff --git a/dist/py/materials_category_components/operations/core/combinations/__init__.py b/dist/py/materials_category_components/operations/core/combinations/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category_components/operations/core/combinations/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category_components/operations/core/combinations/enums.py b/dist/py/materials_category_components/operations/core/combinations/enums.py new file mode 100644 index 000000000..12b7db206 --- /dev/null +++ b/dist/py/materials_category_components/operations/core/combinations/enums.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/operations/core/combinations/enums.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + + +class MergeMethodsEnum(Enum): + ADD = "ADD" + REPLACE = "REPLACE" + YIELD = "YIELD" diff --git a/dist/py/materials_category_components/operations/core/combinations/merge.py b/dist/py/materials_category_components/operations/core/combinations/merge.py new file mode 100644 index 000000000..429f6e171 --- /dev/null +++ b/dist/py/materials_category_components/operations/core/combinations/merge.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/operations/core/combinations/merge.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List + +from pydantic import BaseModel, Field + + +class MergeMethodsEnum(Enum): + ADD = "ADD" + REPLACE = "REPLACE" + YIELD = "YIELD" + + +class MergeSchema(BaseModel): + merge_components: List + merge_method: MergeMethodsEnum = Field(..., title="Merge Methods Enum") + """ + Available methods for merging components + """ diff --git a/dist/py/materials_category_components/operations/core/combinations/stack.py b/dist/py/materials_category_components/operations/core/combinations/stack.py new file mode 100644 index 000000000..83a3cd767 --- /dev/null +++ b/dist/py/materials_category_components/operations/core/combinations/stack.py @@ -0,0 +1,39 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/operations/core/combinations/stack.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class AxisEnum(Enum): + x = "x" + y = "y" + z = "z" + + +class ObjectWithIdAndValueSchema(BaseModel): + value: float + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class StackSchema(BaseModel): + stack_components: List + direction: AxisEnum = Field(..., title="Axis Enum") + """ + Enum for axis types + """ + gaps: Optional[List[ObjectWithIdAndValueSchema]] = None + """ + Gap distances between stack components as array of objects with id and value + """ diff --git a/dist/py/materials_category_components/operations/core/modifications/__init__.py b/dist/py/materials_category_components/operations/core/modifications/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/materials_category_components/operations/core/modifications/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/materials_category_components/operations/core/modifications/perturb.py b/dist/py/materials_category_components/operations/core/modifications/perturb.py new file mode 100644 index 000000000..420b2d3d7 --- /dev/null +++ b/dist/py/materials_category_components/operations/core/modifications/perturb.py @@ -0,0 +1,565 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/operations/core/modifications/perturb.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value139(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value139] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name615(Enum): + density = "density" + + +class Units269(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units269] = None + value: float + + +class Units270(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units270] = None + value: float + + +class Name616(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name617(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name618(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name619(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name620(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class Source(Enum): + MaterialsProject = "MaterialsProject" + MaterialsProjectLegacy = "MaterialsProjectLegacy" + ICSD = "ICSD" + field_2dmatpedia = "2dmatpedia" + MaterialsVirtualLab = "MaterialsVirtualLab" + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: Source + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ + + +class Name621(Enum): + default = "default" + atomsTooClose = "atomsTooClose" + atomsOverlap = "atomsOverlap" + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class MaterialConsistencyCheckSchema(BaseModel): + name: Name621 + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditions(BaseModel): + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Metadata(BaseModel): + boundaryConditions: Optional[BoundaryConditions] = None + + +class MaterialSchema(BaseModel): + formula: Optional[str] = None + """ + reduced chemical formula + """ + unitCellFormula: Optional[str] = None + """ + chemical formula based on the number of atoms of each element in the supercell + """ + basis: BasisSchema = Field(..., title="basis schema") + lattice: LatticeSchema = Field(..., title="lattice schema") + derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema") + external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema") + """ + information about a database source + """ + src: Optional[FileSourceSchema] = Field(None, title="file source schema") + """ + file source with the information inside + """ + scaledHash: Optional[str] = None + """ + Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure). + """ + icsdId: Optional[int] = None + """ + Corresponding ICSD id of the material + """ + isNonPeriodic: Optional[bool] = None + """ + Whether to work in the finite molecular picture (usually with atomic orbital basis) + """ + consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None + metadata: Optional[Metadata] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + + +class PerturbationSchema(BaseModel): + material: Optional[MaterialSchema] = Field(None, title="material schema") + perturbation_function: Optional[str] = None + """ + A function that defines the perturbation (delta in coordinates) to be applied to the atomic coordinates. + """ diff --git a/dist/py/materials_category_components/operations/core/modifications/repeat.py b/dist/py/materials_category_components/operations/core/modifications/repeat.py new file mode 100644 index 000000000..d2adc1c47 --- /dev/null +++ b/dist/py/materials_category_components/operations/core/modifications/repeat.py @@ -0,0 +1,27 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/operations/core/modifications/repeat.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel, Field, RootModel + + +class ArrayOf3IntegerElementsSchema(RootModel[List[int]]): + root: List[int] = Field(..., title="array of 3 integer elements schema") + + +class RepeatSchema(BaseModel): + matrix: Optional[List[ArrayOf3IntegerElementsSchema]] = Field( + default_factory=lambda: [ + ArrayOf3IntegerElementsSchema.model_validate(v) for v in [[1, 0, 0], [0, 1, 0], [0, 0, 1]] + ], + max_length=3, + min_length=3, + title="Supercell Matrix 3D Schema", + ) + """ + 3x3 matrix of integers for transforming a unit cell into a supercell + """ diff --git a/dist/py/materials_category_components/operations/core/modifications/strain.py b/dist/py/materials_category_components/operations/core/modifications/strain.py new file mode 100644 index 000000000..36f45a558 --- /dev/null +++ b/dist/py/materials_category_components/operations/core/modifications/strain.py @@ -0,0 +1,19 @@ +# generated by datamodel-codegen: +# filename: materials_category_components/operations/core/modifications/strain.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel, Field, RootModel + + +class ArrayOf3NumberElementsSchema(RootModel[List[float]]): + root: List[float] = Field(..., title="array of 3 number elements schema") + + +class StrainSchema(BaseModel): + matrix: Optional[List[ArrayOf3NumberElementsSchema]] = Field( + None, max_length=3, min_length=3, title="matrix 3x3 schema" + ) diff --git a/dist/py/method/__init__.py b/dist/py/method/__init__.py new file mode 100644 index 000000000..63816c5f4 --- /dev/null +++ b/dist/py/method/__init__.py @@ -0,0 +1,28 @@ +# generated by datamodel-codegen: +# filename: method.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, Optional + +from pydantic import BaseModel + + +class BaseMethod(BaseModel): + type: str + """ + general type of this method, eg. `pseudopotential` + """ + subtype: str + """ + general subtype of this method, eg. `ultra-soft` + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + data: Optional[Dict[str, Any]] = None + """ + additional data specific to method, eg. array of pseudopotentials + """ diff --git a/dist/py/method/categorized_method.py b/dist/py/method/categorized_method.py new file mode 100644 index 000000000..4e9cde4cc --- /dev/null +++ b/dist/py/method/categorized_method.py @@ -0,0 +1,86 @@ +# generated by datamodel-codegen: +# filename: method/categorized_method.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class ReusableCategoriesSchema(BaseModel): + tier1: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class CategorizedUnitMethod(BaseModel): + categories: Optional[ReusableCategoriesSchema] = Field(None, title="Reusable categories schema") + """ + Used to categorize entities such as models and methods + """ + parameters: Optional[Dict[str, Any]] = None + """ + Instructive parameters defining the method + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + + +class CategorizedMethod(BaseModel): + units: List[CategorizedUnitMethod] + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/method/method_parameters.py b/dist/py/method/method_parameters.py new file mode 100644 index 000000000..f19813481 --- /dev/null +++ b/dist/py/method/method_parameters.py @@ -0,0 +1,48 @@ +# generated by datamodel-codegen: +# filename: method/method_parameters.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field, RootModel + + +class BasisSlug(Enum): + cc_pvdz = "cc-pvdz" + cc_pvtz = "cc-pvtz" + cc_pvqz = "cc-pvqz" + + +class MethodParameters(BaseModel): + basisSlug: Optional[BasisSlug] = None + + +class BasisSlug3(Enum): + field_3_21G = "3-21G" + field_6_31G = "6-31G" + field_6_311G = "6-311G" + + +class MethodParameters1(BaseModel): + basisSlug: Optional[BasisSlug3] = None + + +class BasisSlug4(Enum): + sto_3g = "sto-3g" + sto_4g = "sto-4g" + sto_6g = "sto-6g" + def2_svp = "def2-svp" + def2_tzvp = "def2-tzvp" + def2_qzvp = "def2-qzvp" + cbs_qb3 = "cbs-qb3" + + +class MethodParameters2(BaseModel): + basisSlug: Optional[BasisSlug4] = None + + +class ESSE(RootModel[Union[MethodParameters, MethodParameters1, MethodParameters2]]): + root: Union[MethodParameters, MethodParameters1, MethodParameters2] = Field(..., title="MethodParameters") diff --git a/dist/py/method/unit_method.py b/dist/py/method/unit_method.py new file mode 100644 index 000000000..825af930e --- /dev/null +++ b/dist/py/method/unit_method.py @@ -0,0 +1,70 @@ +# generated by datamodel-codegen: +# filename: method/unit_method.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class ReusableCategoriesSchema(BaseModel): + tier1: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class CategorizedUnitMethod(BaseModel): + categories: Optional[ReusableCategoriesSchema] = Field(None, title="Reusable categories schema") + """ + Used to categorize entities such as models and methods + """ + parameters: Optional[Dict[str, Any]] = None + """ + Instructive parameters defining the method + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/methods_category/mathematical/__init__.py b/dist/py/methods_category/mathematical/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/methods_category/mathematical/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/methods_category/mathematical/diff/__init__.py b/dist/py/methods_category/mathematical/diff/__init__.py new file mode 100644 index 000000000..c47e56d1a --- /dev/null +++ b/dist/py/methods_category/mathematical/diff/__init__.py @@ -0,0 +1,48 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/diff.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + diff = "diff" + + +class NumericalDifferentiationCategorySchema(BaseModel): + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/diff/enum_options.py b/dist/py/methods_category/mathematical/diff/enum_options.py new file mode 100644 index 000000000..da1e8492c --- /dev/null +++ b/dist/py/methods_category/mathematical/diff/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/diff/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/diff/fd.py b/dist/py/methods_category/mathematical/diff/fd.py new file mode 100644 index 000000000..c3816f9a2 --- /dev/null +++ b/dist/py/methods_category/mathematical/diff/fd.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/diff/fd.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + fd = "fd" + + +class SlugifiedEntryOrSlug73(Enum): + diff = "diff" + + +class FiniteDifferenceMethodCategorySchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug73]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/discr/__init__.py b/dist/py/methods_category/mathematical/discr/__init__.py new file mode 100644 index 000000000..fb12ef782 --- /dev/null +++ b/dist/py/methods_category/mathematical/discr/__init__.py @@ -0,0 +1,48 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/discr.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + discr = "discr" + + +class DiscretizationCategorySchema(BaseModel): + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/discr/enum_options.py b/dist/py/methods_category/mathematical/discr/enum_options.py new file mode 100644 index 000000000..bf025ed0c --- /dev/null +++ b/dist/py/methods_category/mathematical/discr/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/discr/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/discr/mesh/__init__.py b/dist/py/methods_category/mathematical/discr/mesh/__init__.py new file mode 100644 index 000000000..d351efd96 --- /dev/null +++ b/dist/py/methods_category/mathematical/discr/mesh/__init__.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/discr/mesh.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + mesh = "mesh" + + +class SlugifiedEntryOrSlug145(Enum): + discr = "discr" + + +class MeshingMethodCategorySchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug145]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/discr/mesh/enum_options.py b/dist/py/methods_category/mathematical/discr/mesh/enum_options.py new file mode 100644 index 000000000..bc89b8fc2 --- /dev/null +++ b/dist/py/methods_category/mathematical/discr/mesh/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/discr/mesh/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/discr/mesh/hybrid.py b/dist/py/methods_category/mathematical/discr/mesh/hybrid.py new file mode 100644 index 000000000..415cdbf68 --- /dev/null +++ b/dist/py/methods_category/mathematical/discr/mesh/hybrid.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/discr/mesh/hybrid.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + hybrid = "hybrid" + + +class SlugifiedEntryOrSlug106(Enum): + mesh = "mesh" + + +class SlugifiedEntryOrSlug107(Enum): + discr = "discr" + + +class HybridMeshingCategorySchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug106]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug107]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/discr/mesh/nstruct.py b/dist/py/methods_category/mathematical/discr/mesh/nstruct.py new file mode 100644 index 000000000..1557c43b5 --- /dev/null +++ b/dist/py/methods_category/mathematical/discr/mesh/nstruct.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/discr/mesh/nstruct.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + nstruct = "nstruct" + + +class SlugifiedEntryOrSlug165(Enum): + mesh = "mesh" + + +class SlugifiedEntryOrSlug166(Enum): + discr = "discr" + + +class UnstructuredMeshingCategoryNstructSchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug165]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug166]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/discr/mesh/struct/__init__.py b/dist/py/methods_category/mathematical/discr/mesh/struct/__init__.py new file mode 100644 index 000000000..299b8b73d --- /dev/null +++ b/dist/py/methods_category/mathematical/discr/mesh/struct/__init__.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/discr/mesh/struct.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + struct = "struct" + + +class SlugifiedEntryOrSlug258(Enum): + mesh = "mesh" + + +class SlugifiedEntryOrSlug259(Enum): + discr = "discr" + + +class StructuredMeshingCategorySchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug258]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug259]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/discr/mesh/struct/cartesian.py b/dist/py/methods_category/mathematical/discr/mesh/struct/cartesian.py new file mode 100644 index 000000000..1284ba3c3 --- /dev/null +++ b/dist/py/methods_category/mathematical/discr/mesh/struct/cartesian.py @@ -0,0 +1,60 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/discr/mesh/struct/cartesian.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + cartesian = "cartesian" + + +class SlugifiedEntryOrSlug18(Enum): + struct = "struct" + + +class SlugifiedEntryOrSlug19(Enum): + mesh = "mesh" + + +class SlugifiedEntryOrSlug20(Enum): + discr = "discr" + + +class CartesianGridSchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug18]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug19]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug20]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/discr/mesh/struct/enum_options.py b/dist/py/methods_category/mathematical/discr/mesh/struct/enum_options.py new file mode 100644 index 000000000..8c64965d9 --- /dev/null +++ b/dist/py/methods_category/mathematical/discr/mesh/struct/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/discr/mesh/struct/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/enum_options.py b/dist/py/methods_category/mathematical/enum_options.py new file mode 100644 index 000000000..c022aead4 --- /dev/null +++ b/dist/py/methods_category/mathematical/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/fapprx/__init__.py b/dist/py/methods_category/mathematical/fapprx/__init__.py new file mode 100644 index 000000000..85a4dfa18 --- /dev/null +++ b/dist/py/methods_category/mathematical/fapprx/__init__.py @@ -0,0 +1,48 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/fapprx.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + fapprx = "fapprx" + + +class UnstructuredMeshingCategoryFapprxSchema(BaseModel): + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/fapprx/basisexp.py b/dist/py/methods_category/mathematical/fapprx/basisexp.py new file mode 100644 index 000000000..a0f93ac25 --- /dev/null +++ b/dist/py/methods_category/mathematical/fapprx/basisexp.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/fapprx/basisexp.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + basisExp = "basisExp" + + +class SlugifiedEntryOrSlug10(Enum): + fapprx = "fapprx" + + +class BasisExpansionCategorySchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug10]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/fapprx/enum_options.py b/dist/py/methods_category/mathematical/fapprx/enum_options.py new file mode 100644 index 000000000..5c777b2c9 --- /dev/null +++ b/dist/py/methods_category/mathematical/fapprx/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/fapprx/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/fapprx/ipol/__init__.py b/dist/py/methods_category/mathematical/fapprx/ipol/__init__.py new file mode 100644 index 000000000..326639a2f --- /dev/null +++ b/dist/py/methods_category/mathematical/fapprx/ipol/__init__.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/fapprx/ipol.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + ipol = "ipol" + + +class SlugifiedEntryOrSlug115(Enum): + fapprx = "fapprx" + + +class InterpolationCategorySchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug115]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/fapprx/ipol/enum_options.py b/dist/py/methods_category/mathematical/fapprx/ipol/enum_options.py new file mode 100644 index 000000000..89f29cc62 --- /dev/null +++ b/dist/py/methods_category/mathematical/fapprx/ipol/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/fapprx/ipol/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/fapprx/ipol/lin.py b/dist/py/methods_category/mathematical/fapprx/ipol/lin.py new file mode 100644 index 000000000..1ea7f55a8 --- /dev/null +++ b/dist/py/methods_category/mathematical/fapprx/ipol/lin.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/fapprx/ipol/lin.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + lin = "lin" + + +class SlugifiedEntryOrSlug134(Enum): + ipol = "ipol" + + +class SlugifiedEntryOrSlug135(Enum): + fapprx = "fapprx" + + +class LinearInterpolationCategorySchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug134]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug135]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/fapprx/ipol/poly.py b/dist/py/methods_category/mathematical/fapprx/ipol/poly.py new file mode 100644 index 000000000..e26514b6c --- /dev/null +++ b/dist/py/methods_category/mathematical/fapprx/ipol/poly.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/fapprx/ipol/poly.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + poly = "poly" + + +class SlugifiedEntryOrSlug195(Enum): + ipol = "ipol" + + +class SlugifiedEntryOrSlug196(Enum): + fapprx = "fapprx" + + +class PolynomialInterpolationCategorySchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug195]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug196]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/fapprx/ipol/spline.py b/dist/py/methods_category/mathematical/fapprx/ipol/spline.py new file mode 100644 index 000000000..90096ea82 --- /dev/null +++ b/dist/py/methods_category/mathematical/fapprx/ipol/spline.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/fapprx/ipol/spline.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + spline = "spline" + + +class SlugifiedEntryOrSlug251(Enum): + ipol = "ipol" + + +class SlugifiedEntryOrSlug252(Enum): + fapprx = "fapprx" + + +class SplineInterpolationCategorySchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug251]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug252]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/intgr/__init__.py b/dist/py/methods_category/mathematical/intgr/__init__.py new file mode 100644 index 000000000..3a4d0f658 --- /dev/null +++ b/dist/py/methods_category/mathematical/intgr/__init__.py @@ -0,0 +1,48 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/intgr.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + intgr = "intgr" + + +class IntegrationCategorySchema(BaseModel): + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/intgr/analytic/__init__.py b/dist/py/methods_category/mathematical/intgr/analytic/__init__.py new file mode 100644 index 000000000..19e63d4f5 --- /dev/null +++ b/dist/py/methods_category/mathematical/intgr/analytic/__init__.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/intgr/analytic.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + analytic = "analytic" + + +class SlugifiedEntryOrSlug4(Enum): + intgr = "intgr" + + +class AnalyticIntegralCategorySchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug4]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/intgr/analytic/enum_options.py b/dist/py/methods_category/mathematical/intgr/analytic/enum_options.py new file mode 100644 index 000000000..193d8586c --- /dev/null +++ b/dist/py/methods_category/mathematical/intgr/analytic/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/intgr/analytic/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/intgr/analytic/volume.py b/dist/py/methods_category/mathematical/intgr/analytic/volume.py new file mode 100644 index 000000000..ce9cb1afe --- /dev/null +++ b/dist/py/methods_category/mathematical/intgr/analytic/volume.py @@ -0,0 +1,67 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/intgr/analytic/volume.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + volume = "volume" + + +class SlugifiedEntryOrSlug271(Enum): + sphere = "sphere" + cube = "cube" + rect_prism = "rect-prism" + tri_prism = "tri-prism" + cylinder = "cylinder" + cone = "cone" + tetrahedron = "tetrahedron" + sq_pyr = "sq-pyr" + + +class SlugifiedEntryOrSlug272(Enum): + analytic = "analytic" + + +class SlugifiedEntryOrSlug273(Enum): + intgr = "intgr" + + +class AnalyticVolumeIntegralCategorySchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug271]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug272]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug273]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/intgr/diffeq/__init__.py b/dist/py/methods_category/mathematical/intgr/diffeq/__init__.py new file mode 100644 index 000000000..ce9951a39 --- /dev/null +++ b/dist/py/methods_category/mathematical/intgr/diffeq/__init__.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/intgr/diffeq.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + diffeq = "diffeq" + + +class SlugifiedEntryOrSlug48(Enum): + intgr = "intgr" + + +class MethodsForTheNumericalIntegrationOfDifferentialEquationsSchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug48]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/intgr/diffeq/enum_options.py b/dist/py/methods_category/mathematical/intgr/diffeq/enum_options.py new file mode 100644 index 000000000..14d093df1 --- /dev/null +++ b/dist/py/methods_category/mathematical/intgr/diffeq/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/intgr/diffeq/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/intgr/diffeq/order1.py b/dist/py/methods_category/mathematical/intgr/diffeq/order1.py new file mode 100644 index 000000000..2fce22dcb --- /dev/null +++ b/dist/py/methods_category/mathematical/intgr/diffeq/order1.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/intgr/diffeq/order1.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + order1 = "order1" + + +class SlugifiedEntryOrSlug171(Enum): + diffeq = "diffeq" + + +class SlugifiedEntryOrSlug172(Enum): + intgr = "intgr" + + +class Order1Schema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug171]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug172]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/intgr/diffeq/order2.py b/dist/py/methods_category/mathematical/intgr/diffeq/order2.py new file mode 100644 index 000000000..b03c3b66b --- /dev/null +++ b/dist/py/methods_category/mathematical/intgr/diffeq/order2.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/intgr/diffeq/order2.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + order2 = "order2" + + +class SlugifiedEntryOrSlug177(Enum): + diffeq = "diffeq" + + +class SlugifiedEntryOrSlug178(Enum): + intgr = "intgr" + + +class Order2Schema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug177]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug178]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/intgr/enum_options.py b/dist/py/methods_category/mathematical/intgr/enum_options.py new file mode 100644 index 000000000..1dfe4a9bf --- /dev/null +++ b/dist/py/methods_category/mathematical/intgr/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/intgr/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/intgr/numquad/__init__.py b/dist/py/methods_category/mathematical/intgr/numquad/__init__.py new file mode 100644 index 000000000..f9c500a67 --- /dev/null +++ b/dist/py/methods_category/mathematical/intgr/numquad/__init__.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/intgr/numquad.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + numquad = "numquad" + + +class SlugifiedEntryOrSlug168(Enum): + intgr = "intgr" + + +class MethodsForTheNumericalQuadratureSchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug168]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/intgr/numquad/enum_options.py b/dist/py/methods_category/mathematical/intgr/numquad/enum_options.py new file mode 100644 index 000000000..9cfba371d --- /dev/null +++ b/dist/py/methods_category/mathematical/intgr/numquad/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/intgr/numquad/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/intgr/numquad/gauss.py b/dist/py/methods_category/mathematical/intgr/numquad/gauss.py new file mode 100644 index 000000000..c73847bc0 --- /dev/null +++ b/dist/py/methods_category/mathematical/intgr/numquad/gauss.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/intgr/numquad/gauss.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + gauss = "gauss" + + +class SlugifiedEntryOrSlug78(Enum): + numquad = "numquad" + + +class SlugifiedEntryOrSlug79(Enum): + intgr = "intgr" + + +class GaussianQuadratureRulesSchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug78]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug79]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/intgr/numquad/newcot.py b/dist/py/methods_category/mathematical/intgr/numquad/newcot.py new file mode 100644 index 000000000..27129e835 --- /dev/null +++ b/dist/py/methods_category/mathematical/intgr/numquad/newcot.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/intgr/numquad/newcot.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + newcot = "newcot" + + +class SlugifiedEntryOrSlug162(Enum): + numquad = "numquad" + + +class SlugifiedEntryOrSlug163(Enum): + intgr = "intgr" + + +class NewtonCotesQuadratureRulesSchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug162]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug163]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/intgr/transf/__init__.py b/dist/py/methods_category/mathematical/intgr/transf/__init__.py new file mode 100644 index 000000000..d28d5e331 --- /dev/null +++ b/dist/py/methods_category/mathematical/intgr/transf/__init__.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/intgr/transf.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + transf = "transf" + + +class SlugifiedEntryOrSlug269(Enum): + intgr = "intgr" + + +class IntegralTransformMethodsSchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug269]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/intgr/transf/enum_options.py b/dist/py/methods_category/mathematical/intgr/transf/enum_options.py new file mode 100644 index 000000000..229aa576d --- /dev/null +++ b/dist/py/methods_category/mathematical/intgr/transf/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/intgr/transf/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/intgr/transf/fourier.py b/dist/py/methods_category/mathematical/intgr/transf/fourier.py new file mode 100644 index 000000000..2c8277db0 --- /dev/null +++ b/dist/py/methods_category/mathematical/intgr/transf/fourier.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/intgr/transf/fourier.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + fourier = "fourier" + + +class SlugifiedEntryOrSlug75(Enum): + transf = "transf" + + +class SlugifiedEntryOrSlug76(Enum): + intgr = "intgr" + + +class FourierTransformMethodsSchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug75]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug76]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/linalg/__init__.py b/dist/py/methods_category/mathematical/linalg/__init__.py new file mode 100644 index 000000000..3af62a4c2 --- /dev/null +++ b/dist/py/methods_category/mathematical/linalg/__init__.py @@ -0,0 +1,48 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/linalg.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + linalg = "linalg" + + +class LinearAlgebraCategorySchema(BaseModel): + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/linalg/dcomp.py b/dist/py/methods_category/mathematical/linalg/dcomp.py new file mode 100644 index 000000000..3d945680a --- /dev/null +++ b/dist/py/methods_category/mathematical/linalg/dcomp.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/linalg/dcomp.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + dcomp = "dcomp" + + +class SlugifiedEntryOrSlug36(Enum): + linalg = "linalg" + + +class MatrixDecompositionMethodsSchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug36]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/linalg/diag/__init__.py b/dist/py/methods_category/mathematical/linalg/diag/__init__.py new file mode 100644 index 000000000..e95d01be6 --- /dev/null +++ b/dist/py/methods_category/mathematical/linalg/diag/__init__.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/linalg/diag.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + diag = "diag" + + +class SlugifiedEntryOrSlug43(Enum): + linalg = "linalg" + + +class MatrixDiagonalizationMethodsSchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug43]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/linalg/diag/davidson.py b/dist/py/methods_category/mathematical/linalg/diag/davidson.py new file mode 100644 index 000000000..32f2a5bab --- /dev/null +++ b/dist/py/methods_category/mathematical/linalg/diag/davidson.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/linalg/diag/davidson.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + davidson = "davidson" + + +class SlugifiedEntryOrSlug33(Enum): + diag = "diag" + + +class SlugifiedEntryOrSlug34(Enum): + linalg = "linalg" + + +class DavidsonDiagonalizationMethodSchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug33]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug34]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/linalg/diag/enum_options.py b/dist/py/methods_category/mathematical/linalg/diag/enum_options.py new file mode 100644 index 000000000..f29334de6 --- /dev/null +++ b/dist/py/methods_category/mathematical/linalg/diag/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/linalg/diag/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/linalg/enum_options.py b/dist/py/methods_category/mathematical/linalg/enum_options.py new file mode 100644 index 000000000..a72b88038 --- /dev/null +++ b/dist/py/methods_category/mathematical/linalg/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/linalg/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/linalg/lintra.py b/dist/py/methods_category/mathematical/linalg/lintra.py new file mode 100644 index 000000000..e3dbb580a --- /dev/null +++ b/dist/py/methods_category/mathematical/linalg/lintra.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/linalg/lintra.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + lintra = "lintra" + + +class SlugifiedEntryOrSlug138(Enum): + linalg = "linalg" + + +class LinearTransformationMethodsSchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug138]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/linalg/matf.py b/dist/py/methods_category/mathematical/linalg/matf.py new file mode 100644 index 000000000..a0941d8fd --- /dev/null +++ b/dist/py/methods_category/mathematical/linalg/matf.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/linalg/matf.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + matf = "matf" + + +class SlugifiedEntryOrSlug143(Enum): + linalg = "linalg" + + +class MatrixFunctionMethodsSchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug143]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/opt/__init__.py b/dist/py/methods_category/mathematical/opt/__init__.py new file mode 100644 index 000000000..08582d1df --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/__init__.py @@ -0,0 +1,48 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + opt = "opt" + + +class MathematicalOptSchema(BaseModel): + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/opt/diff/__init__.py b/dist/py/methods_category/mathematical/opt/diff/__init__.py new file mode 100644 index 000000000..c8ca62909 --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/diff/__init__.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/diff.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + diff = "diff" + + +class SlugifiedEntryOrSlug46(Enum): + opt = "opt" + + +class OptimizationMethodsForDifferentiableFunctionsCategorySchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug46]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/opt/diff/bracket.py b/dist/py/methods_category/mathematical/opt/diff/bracket.py new file mode 100644 index 000000000..fd006e983 --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/diff/bracket.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/diff/bracket.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + bracket = "bracket" + + +class SlugifiedEntryOrSlug12(Enum): + diff = "diff" + + +class SlugifiedEntryOrSlug13(Enum): + opt = "opt" + + +class BracketAlgorithmsForTheOptimizationOfDifferentiableFunctionsSchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug12]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug13]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/opt/diff/enum_options.py b/dist/py/methods_category/mathematical/opt/diff/enum_options.py new file mode 100644 index 000000000..e131fa68d --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/diff/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/diff/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/opt/diff/local.py b/dist/py/methods_category/mathematical/opt/diff/local.py new file mode 100644 index 000000000..1360650bf --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/diff/local.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/diff/local.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + local = "local" + + +class SlugifiedEntryOrSlug140(Enum): + diff = "diff" + + +class SlugifiedEntryOrSlug141(Enum): + opt = "opt" + + +class LocalDescentMethodsForTheOptimizationOfDifferentiableFunctionsSchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug140]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug141]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/opt/diff/order1.py b/dist/py/methods_category/mathematical/opt/diff/order1.py new file mode 100644 index 000000000..83c08356d --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/diff/order1.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/diff/order1.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + order1 = "order1" + + +class SlugifiedEntryOrSlug174(Enum): + diff = "diff" + + +class SlugifiedEntryOrSlug175(Enum): + opt = "opt" + + +class FirstOrderAlgorithmsForTheOptimizationOfDifferentiableFunctionsSchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug174]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug175]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/opt/diff/order2.py b/dist/py/methods_category/mathematical/opt/diff/order2.py new file mode 100644 index 000000000..ad7f6fc0b --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/diff/order2.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/diff/order2.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + order2 = "order2" + + +class SlugifiedEntryOrSlug180(Enum): + diff = "diff" + + +class SlugifiedEntryOrSlug181(Enum): + opt = "opt" + + +class SecondOrderAlgorithmsForTheOptimizationOfDifferentiableFunctionsSchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug180]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug181]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/opt/diff/ordern/__init__.py b/dist/py/methods_category/mathematical/opt/diff/ordern/__init__.py new file mode 100644 index 000000000..32c266c32 --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/diff/ordern/__init__.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/diff/ordern.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + ordern = "ordern" + + +class SlugifiedEntryOrSlug183(Enum): + diff = "diff" + + +class SlugifiedEntryOrSlug184(Enum): + opt = "opt" + + +class MixedOrderAndHigherOrderAlgorithmsForTheOptimizationOfDifferentiableFunctionsSchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug183]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug184]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/opt/diff/ordern/cg.py b/dist/py/methods_category/mathematical/opt/diff/ordern/cg.py new file mode 100644 index 000000000..11db0fa46 --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/diff/ordern/cg.py @@ -0,0 +1,60 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/diff/ordern/cg.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + cg = "cg" + + +class SlugifiedEntryOrSlug26(Enum): + ordern = "ordern" + + +class SlugifiedEntryOrSlug27(Enum): + diff = "diff" + + +class SlugifiedEntryOrSlug28(Enum): + opt = "opt" + + +class ConjugateGradientMethodSchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug26]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug27]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug28]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/opt/diff/ordern/enum_options.py b/dist/py/methods_category/mathematical/opt/diff/ordern/enum_options.py new file mode 100644 index 000000000..ef0eabc22 --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/diff/ordern/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/diff/ordern/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/opt/enum_options.py b/dist/py/methods_category/mathematical/opt/enum_options.py new file mode 100644 index 000000000..1d961755b --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/opt/ndiff/__init__.py b/dist/py/methods_category/mathematical/opt/ndiff/__init__.py new file mode 100644 index 000000000..a91e9b42f --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/ndiff/__init__.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/ndiff.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + ndiff = "ndiff" + + +class SlugifiedEntryOrSlug160(Enum): + opt = "opt" + + +class OptimizationMethodsForNonDifferentiableFunctionsCategorySchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug160]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/opt/ndiff/direct.py b/dist/py/methods_category/mathematical/opt/ndiff/direct.py new file mode 100644 index 000000000..8d7b74974 --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/ndiff/direct.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/ndiff/direct.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + direct = "direct" + + +class SlugifiedEntryOrSlug50(Enum): + ndiff = "ndiff" + + +class SlugifiedEntryOrSlug51(Enum): + opt = "opt" + + +class DirectAlgorithmsForTheOptimizationOfNonDifferentiableFunctionsCategorySchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug50]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug51]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/opt/ndiff/enum_options.py b/dist/py/methods_category/mathematical/opt/ndiff/enum_options.py new file mode 100644 index 000000000..7de22f2ce --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/ndiff/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/ndiff/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/opt/ndiff/pop.py b/dist/py/methods_category/mathematical/opt/ndiff/pop.py new file mode 100644 index 000000000..03d6e1f7f --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/ndiff/pop.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/ndiff/pop.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + pop = "pop" + + +class SlugifiedEntryOrSlug198(Enum): + ndiff = "ndiff" + + +class SlugifiedEntryOrSlug199(Enum): + opt = "opt" + + +class PopulationAlgorithmsForTheOptmizationOfNonDifferentiableFunctionsCategorySchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug198]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug199]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/opt/ndiff/stoch.py b/dist/py/methods_category/mathematical/opt/ndiff/stoch.py new file mode 100644 index 000000000..3e3ec9712 --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/ndiff/stoch.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/ndiff/stoch.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + stoch = "stoch" + + +class SlugifiedEntryOrSlug255(Enum): + ndiff = "ndiff" + + +class SlugifiedEntryOrSlug256(Enum): + opt = "opt" + + +class StochasticAlgorithmsForTheOptmizationOfNonDifferentiableFunctionsCategorySchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug255]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug256]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/opt/root/__init__.py b/dist/py/methods_category/mathematical/opt/root/__init__.py new file mode 100644 index 000000000..0f9c1f286 --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/root/__init__.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/root.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + root = "root" + + +class SlugifiedEntryOrSlug238(Enum): + opt = "opt" + + +class RootFindingCategorySchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug238]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/opt/root/bracket.py b/dist/py/methods_category/mathematical/opt/root/bracket.py new file mode 100644 index 000000000..82c417ee5 --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/root/bracket.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/root/bracket.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + bracket = "bracket" + + +class SlugifiedEntryOrSlug15(Enum): + root = "root" + + +class SlugifiedEntryOrSlug16(Enum): + opt = "opt" + + +class BracketingMethodForFindingRootsCategorySchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug15]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug16]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/opt/root/enum_options.py b/dist/py/methods_category/mathematical/opt/root/enum_options.py new file mode 100644 index 000000000..2edccaf1c --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/root/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/root/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/mathematical/opt/root/iter.py b/dist/py/methods_category/mathematical/opt/root/iter.py new file mode 100644 index 000000000..54218e927 --- /dev/null +++ b/dist/py/methods_category/mathematical/opt/root/iter.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/opt/root/iter.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + iterative = "iterative" + + +class SlugifiedEntryOrSlug117(Enum): + root = "root" + + +class SlugifiedEntryOrSlug118(Enum): + opt = "opt" + + +class IterativeMethodForRootFindingCategorySchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug117]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug118]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/mathematical/regression.py b/dist/py/methods_category/mathematical/regression.py new file mode 100644 index 000000000..1b3246490 --- /dev/null +++ b/dist/py/methods_category/mathematical/regression.py @@ -0,0 +1,54 @@ +# generated by datamodel-codegen: +# filename: methods_category/mathematical/regression.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + linear = "linear" + kernel_ridge = "kernel_ridge" + + +class SlugifiedEntryOrSlug236(Enum): + least_squares = "least_squares" + ridge = "ridge" + + +class LinearMethodsCategorySchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug236]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/physical/__init__.py b/dist/py/methods_category/physical/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/methods_category/physical/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/methods_category/physical/enum_options.py b/dist/py/methods_category/physical/enum_options.py new file mode 100644 index 000000000..a872255eb --- /dev/null +++ b/dist/py/methods_category/physical/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/physical/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/physical/qm/__init__.py b/dist/py/methods_category/physical/qm/__init__.py new file mode 100644 index 000000000..3e057f567 --- /dev/null +++ b/dist/py/methods_category/physical/qm/__init__.py @@ -0,0 +1,48 @@ +# generated by datamodel-codegen: +# filename: methods_category/physical/qm.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + qm = "qm" + + +class QuantumMechanicalMethodCategorySchema(BaseModel): + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/physical/qm/enum_options.py b/dist/py/methods_category/physical/qm/enum_options.py new file mode 100644 index 000000000..fcd4ff9fe --- /dev/null +++ b/dist/py/methods_category/physical/qm/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/physical/qm/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/physical/qm/wf/__init__.py b/dist/py/methods_category/physical/qm/wf/__init__.py new file mode 100644 index 000000000..fa4b33f23 --- /dev/null +++ b/dist/py/methods_category/physical/qm/wf/__init__.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: methods_category/physical/qm/wf.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + wf = "wf" + + +class SlugifiedEntryOrSlug275(Enum): + qm = "qm" + + +class MethodsRelatedToWaveFunctionsSchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug275]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/physical/qm/wf/ao/__init__.py b/dist/py/methods_category/physical/qm/wf/ao/__init__.py new file mode 100644 index 000000000..0ca2c5b17 --- /dev/null +++ b/dist/py/methods_category/physical/qm/wf/ao/__init__.py @@ -0,0 +1,62 @@ +# generated by datamodel-codegen: +# filename: methods_category/physical/qm/wf/ao.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + ao = "ao" + + +class SlugifiedEntryOrSlug6(Enum): + pople = "pople" + dunning = "dunning" + other = "other" + + +class SlugifiedEntryOrSlug7(Enum): + wf = "wf" + + +class SlugifiedEntryOrSlug8(Enum): + qm = "qm" + + +class ApproximatingTheElectronicWaveFunctionWithAAtomicOrbitalBasisSchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug6]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug7]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug8]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/physical/qm/wf/ao/dunning.py b/dist/py/methods_category/physical/qm/wf/ao/dunning.py new file mode 100644 index 000000000..988f4dd89 --- /dev/null +++ b/dist/py/methods_category/physical/qm/wf/ao/dunning.py @@ -0,0 +1,60 @@ +# generated by datamodel-codegen: +# filename: methods_category/physical/qm/wf/ao/dunning.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + dunning = "dunning" + + +class SlugifiedEntryOrSlug68(Enum): + ao = "ao" + + +class SlugifiedEntryOrSlug69(Enum): + wf = "wf" + + +class SlugifiedEntryOrSlug70(Enum): + qm = "qm" + + +class DunningCorrelationConsistentBasisSetCategorySchema(BaseModel): + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug68]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug69]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug70]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/physical/qm/wf/ao/other.py b/dist/py/methods_category/physical/qm/wf/ao/other.py new file mode 100644 index 000000000..24341d79a --- /dev/null +++ b/dist/py/methods_category/physical/qm/wf/ao/other.py @@ -0,0 +1,60 @@ +# generated by datamodel-codegen: +# filename: methods_category/physical/qm/wf/ao/other.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + other = "other" + + +class SlugifiedEntryOrSlug190(Enum): + ao = "ao" + + +class SlugifiedEntryOrSlug191(Enum): + wf = "wf" + + +class SlugifiedEntryOrSlug192(Enum): + qm = "qm" + + +class OtherNeitherPopleNorDunningBasisSetCategorySchema(BaseModel): + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug190]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug191]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug192]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/physical/qm/wf/ao/pople.py b/dist/py/methods_category/physical/qm/wf/ao/pople.py new file mode 100644 index 000000000..e5cb4d651 --- /dev/null +++ b/dist/py/methods_category/physical/qm/wf/ao/pople.py @@ -0,0 +1,60 @@ +# generated by datamodel-codegen: +# filename: methods_category/physical/qm/wf/ao/pople.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + pople = "pople" + + +class SlugifiedEntryOrSlug205(Enum): + ao = "ao" + + +class SlugifiedEntryOrSlug206(Enum): + wf = "wf" + + +class SlugifiedEntryOrSlug207(Enum): + qm = "qm" + + +class PopleBasisSetCategorySchema(BaseModel): + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug205]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug206]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug207]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/physical/qm/wf/enum_options.py b/dist/py/methods_category/physical/qm/wf/enum_options.py new file mode 100644 index 000000000..3444bb012 --- /dev/null +++ b/dist/py/methods_category/physical/qm/wf/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_category/physical/qm/wf/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_category/physical/qm/wf/psp.py b/dist/py/methods_category/physical/qm/wf/psp.py new file mode 100644 index 000000000..42d85dad0 --- /dev/null +++ b/dist/py/methods_category/physical/qm/wf/psp.py @@ -0,0 +1,64 @@ +# generated by datamodel-codegen: +# filename: methods_category/physical/qm/wf/psp.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + psp = "psp" + + +class SlugifiedEntryOrSlug213(Enum): + us = "us" + nc = "nc" + nc_fr = "nc-fr" + paw = "paw" + coulomb = "coulomb" + + +class SlugifiedEntryOrSlug214(Enum): + wf = "wf" + + +class SlugifiedEntryOrSlug215(Enum): + qm = "qm" + + +class PseudopotentialCategorySchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug213]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug214]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug215]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/physical/qm/wf/pw.py b/dist/py/methods_category/physical/qm/wf/pw.py new file mode 100644 index 000000000..5b7f62962 --- /dev/null +++ b/dist/py/methods_category/physical/qm/wf/pw.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: methods_category/physical/qm/wf/pw.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + pw = "pw" + + +class SlugifiedEntryOrSlug220(Enum): + wf = "wf" + + +class SlugifiedEntryOrSlug221(Enum): + qm = "qm" + + +class PlaneWaveCatgeorySchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug220]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug221]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/physical/qm/wf/smearing.py b/dist/py/methods_category/physical/qm/wf/smearing.py new file mode 100644 index 000000000..c79889556 --- /dev/null +++ b/dist/py/methods_category/physical/qm/wf/smearing.py @@ -0,0 +1,63 @@ +# generated by datamodel-codegen: +# filename: methods_category/physical/qm/wf/smearing.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + smearing = "smearing" + + +class SlugifiedEntryOrSlug247(Enum): + gaussian = "gaussian" + marzari_vanderbilt = "marzari-vanderbilt" + methfessel_paxton = "methfessel-paxton" + fermi_dirac = "fermi-dirac" + + +class SlugifiedEntryOrSlug248(Enum): + wf = "wf" + + +class SlugifiedEntryOrSlug249(Enum): + qm = "qm" + + +class SmearingMethodsCategorySchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug247]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug248]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug249]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_category/physical/qm/wf/tetrahedron.py b/dist/py/methods_category/physical/qm/wf/tetrahedron.py new file mode 100644 index 000000000..65a4ebce4 --- /dev/null +++ b/dist/py/methods_category/physical/qm/wf/tetrahedron.py @@ -0,0 +1,62 @@ +# generated by datamodel-codegen: +# filename: methods_category/physical/qm/wf/tetrahedron.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + tetrahedron = "tetrahedron" + + +class SlugifiedEntryOrSlug265(Enum): + linear = "linear" + optimized = "optimized" + bloechl = "bloechl" + + +class SlugifiedEntryOrSlug266(Enum): + wf = "wf" + + +class SlugifiedEntryOrSlug267(Enum): + qm = "qm" + + +class TetrahedronMethodForBrillouinZoneIntegrationCategorySchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug265]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug266]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug267]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/methods_directory/legacy/__init__.py b/dist/py/methods_directory/legacy/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/methods_directory/legacy/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/methods_directory/legacy/localorbital.py b/dist/py/methods_directory/legacy/localorbital.py new file mode 100644 index 000000000..878abf75c --- /dev/null +++ b/dist/py/methods_directory/legacy/localorbital.py @@ -0,0 +1,28 @@ +# generated by datamodel-codegen: +# filename: methods_directory/legacy/localorbital.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, Literal, Optional + +from pydantic import BaseModel + + +class LegacyMethodLocalorbital(BaseModel): + type: Literal["localorbital"] + """ + general type of this method, eg. `pseudopotential` + """ + subtype: Literal["pople"] + """ + general subtype of this method, eg. `ultra-soft` + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + data: Optional[Dict[str, Any]] = None + """ + additional data specific to method, eg. array of pseudopotentials + """ diff --git a/dist/py/methods_directory/legacy/pseudopotential.py b/dist/py/methods_directory/legacy/pseudopotential.py new file mode 100644 index 000000000..0ee91ee31 --- /dev/null +++ b/dist/py/methods_directory/legacy/pseudopotential.py @@ -0,0 +1,36 @@ +# generated by datamodel-codegen: +# filename: methods_directory/legacy/pseudopotential.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, Literal, Optional + +from pydantic import BaseModel + + +class Subtype(Enum): + paw = "paw" + nc = "nc" + us = "us" + any = "any" + + +class LegacyMethodPseudopotential(BaseModel): + type: Literal["pseudopotential"] + """ + general type of this method, eg. `pseudopotential` + """ + subtype: Optional[Subtype] = "us" + """ + general subtype of this method, eg. `ultra-soft` + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + data: Optional[Dict[str, Any]] = None + """ + additional data specific to method, eg. array of pseudopotentials + """ diff --git a/dist/py/methods_directory/legacy/regression.py b/dist/py/methods_directory/legacy/regression.py new file mode 100644 index 000000000..c03aae6fb --- /dev/null +++ b/dist/py/methods_directory/legacy/regression.py @@ -0,0 +1,118 @@ +# generated by datamodel-codegen: +# filename: methods_directory/legacy/regression.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, List, Optional, Union + +from pydantic import BaseModel, Field + + +class Type(Enum): + linear = "linear" + kernel_ridge = "kernel_ridge" + + +class Subtype(Enum): + least_squares = "least_squares" + ridge = "ridge" + + +class RegressionPrecisionPerPropertySchema(BaseModel): + name: Optional[str] = None + """ + property name in 'flattened' format + """ + trainingError: float + """ + training error of the estimator + """ + score: Optional[float] = None + """ + prediction score of the estimator. Eg: r2_score + """ + + +class RegressionPrecision(BaseModel): + perProperty: Optional[List[RegressionPrecisionPerPropertySchema]] = None + + +class PerFeaturePropertyUsedForTrainingTheMLMethodModelParametersSchema(BaseModel): + coefficient: Optional[float] = None + """ + coefficient in linear regression + """ + name: str + """ + feature name + """ + importance: Optional[float] = None + """ + pvalue: https://en.wikipedia.org/wiki/P-value + """ + + +class LinearRegressionParametersSchema(BaseModel): + intercept: float + """ + intercept (shift) from the linear or non-linear fit of data points + """ + perFeature: List[PerFeaturePropertyUsedForTrainingTheMLMethodModelParametersSchema] + """ + per-feature (property used for training the ML method/model) parameters + """ + + +class KernelRidgeRegressionParametersSchema(BaseModel): + xFit: List + """ + training data + """ + dualCoefficients: List + """ + dual coefficients + """ + perFeature: List[PerFeaturePropertyUsedForTrainingTheMLMethodModelParametersSchema] + """ + per-feature (property used for training the ML method/model) parameters + """ + + +class DataSet(BaseModel): + exabyteIds: List[str] + """ + array of exabyteIds for materials in dataset + """ + extra: Optional[Any] = None + """ + holder for any extra information, eg. coming from user-uploaded CSV file + """ + + +class RegressionData(BaseModel): + perProperty: Optional[List[Union[LinearRegressionParametersSchema, KernelRidgeRegressionParametersSchema]]] = None + dataSet: Optional[DataSet] = None + """ + dataset for ml + """ + + +class LegacyMethodRegression(BaseModel): + type: Type + """ + general type of this method, eg. `pseudopotential` + """ + subtype: Subtype + """ + general subtype of this method, eg. `ultra-soft` + """ + precision: RegressionPrecision = Field(..., title="regression precision") + """ + Object showing the actual possible precision based on theory and implementation + """ + data: RegressionData = Field(..., title="regression data") + """ + additional data specific to method, eg. array of pseudopotentials + """ diff --git a/dist/py/methods_directory/legacy/unknown.py b/dist/py/methods_directory/legacy/unknown.py new file mode 100644 index 000000000..50759cf2c --- /dev/null +++ b/dist/py/methods_directory/legacy/unknown.py @@ -0,0 +1,28 @@ +# generated by datamodel-codegen: +# filename: methods_directory/legacy/unknown.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, Literal, Optional + +from pydantic import BaseModel + + +class LegacyMethodUnknown(BaseModel): + type: Literal["unknown"] + """ + general type of this method, eg. `pseudopotential` + """ + subtype: Literal["unknown"] + """ + general subtype of this method, eg. `ultra-soft` + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + data: Optional[Dict[str, Any]] = None + """ + additional data specific to method, eg. array of pseudopotentials + """ diff --git a/dist/py/methods_directory/mathematical/__init__.py b/dist/py/methods_directory/mathematical/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/methods_directory/mathematical/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/methods_directory/mathematical/cg.py b/dist/py/methods_directory/mathematical/cg.py new file mode 100644 index 000000000..b57969eb5 --- /dev/null +++ b/dist/py/methods_directory/mathematical/cg.py @@ -0,0 +1,87 @@ +# generated by datamodel-codegen: +# filename: methods_directory/mathematical/cg.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + cg = "cg" + + +class SlugifiedEntryOrSlug22(Enum): + ordern = "ordern" + + +class SlugifiedEntryOrSlug23(Enum): + diff = "diff" + + +class SlugifiedEntryOrSlug24(Enum): + opt = "opt" + + +class ConjugateGradientMethodSchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug22]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug23]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug24]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class UnitMethodConjugateGradient(BaseModel): + categories: ConjugateGradientMethodSchema = Field(..., title="Conjugate gradient method schema") + """ + Used to categorize entities such as models and methods + """ + parameters: Optional[Dict[str, Any]] = None + """ + Instructive parameters defining the method + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/methods_directory/mathematical/davidson.py b/dist/py/methods_directory/mathematical/davidson.py new file mode 100644 index 000000000..c0959fd77 --- /dev/null +++ b/dist/py/methods_directory/mathematical/davidson.py @@ -0,0 +1,83 @@ +# generated by datamodel-codegen: +# filename: methods_directory/mathematical/davidson.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + davidson = "davidson" + + +class SlugifiedEntryOrSlug30(Enum): + diag = "diag" + + +class SlugifiedEntryOrSlug31(Enum): + linalg = "linalg" + + +class DavidsonDiagonalizationMethodSchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug30]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug31]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class UnitMethodDavidsonSchema(BaseModel): + categories: DavidsonDiagonalizationMethodSchema = Field(..., title="Davidson diagonalization method schema") + """ + Used to categorize entities such as models and methods + """ + parameters: Optional[Dict[str, Any]] = None + """ + Instructive parameters defining the method + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/methods_directory/mathematical/regression/__init__.py b/dist/py/methods_directory/mathematical/regression/__init__.py new file mode 100644 index 000000000..4cd24d6a9 --- /dev/null +++ b/dist/py/methods_directory/mathematical/regression/__init__.py @@ -0,0 +1,161 @@ +# generated by datamodel-codegen: +# filename: methods_directory/mathematical/regression.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + linear = "linear" + kernel_ridge = "kernel_ridge" + + +class SlugifiedEntryOrSlug234(Enum): + least_squares = "least_squares" + ridge = "ridge" + + +class LinearMethodsCategorySchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug234]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class RegressionPrecisionPerPropertySchema(BaseModel): + name: Optional[str] = None + """ + property name in 'flattened' format + """ + trainingError: float + """ + training error of the estimator + """ + score: Optional[float] = None + """ + prediction score of the estimator. Eg: r2_score + """ + + +class RegressionPrecision(BaseModel): + perProperty: Optional[List[RegressionPrecisionPerPropertySchema]] = None + + +class PerFeaturePropertyUsedForTrainingTheMLMethodModelParametersSchema(BaseModel): + coefficient: Optional[float] = None + """ + coefficient in linear regression + """ + name: str + """ + feature name + """ + importance: Optional[float] = None + """ + pvalue: https://en.wikipedia.org/wiki/P-value + """ + + +class LinearRegressionParametersSchema(BaseModel): + intercept: float + """ + intercept (shift) from the linear or non-linear fit of data points + """ + perFeature: List[PerFeaturePropertyUsedForTrainingTheMLMethodModelParametersSchema] + """ + per-feature (property used for training the ML method/model) parameters + """ + + +class KernelRidgeRegressionParametersSchema(BaseModel): + xFit: List + """ + training data + """ + dualCoefficients: List + """ + dual coefficients + """ + perFeature: List[PerFeaturePropertyUsedForTrainingTheMLMethodModelParametersSchema] + """ + per-feature (property used for training the ML method/model) parameters + """ + + +class DataSet(BaseModel): + exabyteIds: List[str] + """ + array of exabyteIds for materials in dataset + """ + extra: Optional[Any] = None + """ + holder for any extra information, eg. coming from user-uploaded CSV file + """ + + +class RegressionData(BaseModel): + perProperty: Optional[List[Union[LinearRegressionParametersSchema, KernelRidgeRegressionParametersSchema]]] = None + dataSet: Optional[DataSet] = None + """ + dataset for ml + """ + + +class UnitMethodRegression(BaseModel): + categories: LinearMethodsCategorySchema = Field(..., title="linear methods category schema") + """ + Used to categorize entities such as models and methods + """ + precision: RegressionPrecision = Field(..., title="regression precision") + """ + Object showing the actual possible precision based on theory and implementation + """ + data: RegressionData = Field(..., title="regression data") + parameters: Optional[Dict[str, Any]] = None + """ + Instructive parameters defining the method + """ + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/methods_directory/mathematical/regression/data.py b/dist/py/methods_directory/mathematical/regression/data.py new file mode 100644 index 000000000..acd1eea66 --- /dev/null +++ b/dist/py/methods_directory/mathematical/regression/data.py @@ -0,0 +1,69 @@ +# generated by datamodel-codegen: +# filename: methods_directory/mathematical/regression/data.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, List, Optional, Union + +from pydantic import BaseModel + + +class PerFeaturePropertyUsedForTrainingTheMLMethodModelParametersSchema(BaseModel): + coefficient: Optional[float] = None + """ + coefficient in linear regression + """ + name: str + """ + feature name + """ + importance: Optional[float] = None + """ + pvalue: https://en.wikipedia.org/wiki/P-value + """ + + +class LinearRegressionParametersSchema(BaseModel): + intercept: float + """ + intercept (shift) from the linear or non-linear fit of data points + """ + perFeature: List[PerFeaturePropertyUsedForTrainingTheMLMethodModelParametersSchema] + """ + per-feature (property used for training the ML method/model) parameters + """ + + +class KernelRidgeRegressionParametersSchema(BaseModel): + xFit: List + """ + training data + """ + dualCoefficients: List + """ + dual coefficients + """ + perFeature: List[PerFeaturePropertyUsedForTrainingTheMLMethodModelParametersSchema] + """ + per-feature (property used for training the ML method/model) parameters + """ + + +class DataSet(BaseModel): + exabyteIds: List[str] + """ + array of exabyteIds for materials in dataset + """ + extra: Optional[Any] = None + """ + holder for any extra information, eg. coming from user-uploaded CSV file + """ + + +class RegressionData(BaseModel): + perProperty: Optional[List[Union[LinearRegressionParametersSchema, KernelRidgeRegressionParametersSchema]]] = None + dataSet: Optional[DataSet] = None + """ + dataset for ml + """ diff --git a/dist/py/methods_directory/mathematical/regression/dataset.py b/dist/py/methods_directory/mathematical/regression/dataset.py new file mode 100644 index 000000000..2fbfe1719 --- /dev/null +++ b/dist/py/methods_directory/mathematical/regression/dataset.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: methods_directory/mathematical/regression/dataset.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, List, Optional + +from pydantic import BaseModel + + +class ESSE(BaseModel): + exabyteIds: List[str] + """ + array of exabyteIds for materials in dataset + """ + extra: Optional[Any] = None + """ + holder for any extra information, eg. coming from user-uploaded CSV file + """ diff --git a/dist/py/methods_directory/mathematical/regression/kernel_ridge/__init__.py b/dist/py/methods_directory/mathematical/regression/kernel_ridge/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/methods_directory/mathematical/regression/kernel_ridge/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/methods_directory/mathematical/regression/kernel_ridge/data_per_property.py b/dist/py/methods_directory/mathematical/regression/kernel_ridge/data_per_property.py new file mode 100644 index 000000000..cc8379633 --- /dev/null +++ b/dist/py/methods_directory/mathematical/regression/kernel_ridge/data_per_property.py @@ -0,0 +1,39 @@ +# generated by datamodel-codegen: +# filename: methods_directory/mathematical/regression/kernel_ridge/data_per_property.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel + + +class PerFeaturePropertyUsedForTrainingTheMLMethodModelParametersSchema(BaseModel): + coefficient: Optional[float] = None + """ + coefficient in linear regression + """ + name: str + """ + feature name + """ + importance: Optional[float] = None + """ + pvalue: https://en.wikipedia.org/wiki/P-value + """ + + +class KernelRidgeRegressionParametersSchema(BaseModel): + xFit: List + """ + training data + """ + dualCoefficients: List + """ + dual coefficients + """ + perFeature: List[PerFeaturePropertyUsedForTrainingTheMLMethodModelParametersSchema] + """ + per-feature (property used for training the ML method/model) parameters + """ diff --git a/dist/py/methods_directory/mathematical/regression/linear/__init__.py b/dist/py/methods_directory/mathematical/regression/linear/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/methods_directory/mathematical/regression/linear/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/methods_directory/mathematical/regression/linear/data_per_property.py b/dist/py/methods_directory/mathematical/regression/linear/data_per_property.py new file mode 100644 index 000000000..6c2886791 --- /dev/null +++ b/dist/py/methods_directory/mathematical/regression/linear/data_per_property.py @@ -0,0 +1,35 @@ +# generated by datamodel-codegen: +# filename: methods_directory/mathematical/regression/linear/data_per_property.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel + + +class PerFeaturePropertyUsedForTrainingTheMLMethodModelParametersSchema(BaseModel): + coefficient: Optional[float] = None + """ + coefficient in linear regression + """ + name: str + """ + feature name + """ + importance: Optional[float] = None + """ + pvalue: https://en.wikipedia.org/wiki/P-value + """ + + +class LinearRegressionParametersSchema(BaseModel): + intercept: float + """ + intercept (shift) from the linear or non-linear fit of data points + """ + perFeature: List[PerFeaturePropertyUsedForTrainingTheMLMethodModelParametersSchema] + """ + per-feature (property used for training the ML method/model) parameters + """ diff --git a/dist/py/methods_directory/mathematical/regression/per_feature_item.py b/dist/py/methods_directory/mathematical/regression/per_feature_item.py new file mode 100644 index 000000000..080156256 --- /dev/null +++ b/dist/py/methods_directory/mathematical/regression/per_feature_item.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: methods_directory/mathematical/regression/per_feature_item.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class PerFeaturePropertyUsedForTrainingTheMLMethodModelParametersSchema(BaseModel): + coefficient: Optional[float] = None + """ + coefficient in linear regression + """ + name: str + """ + feature name + """ + importance: Optional[float] = None + """ + pvalue: https://en.wikipedia.org/wiki/P-value + """ diff --git a/dist/py/methods_directory/mathematical/regression/precision.py b/dist/py/methods_directory/mathematical/regression/precision.py new file mode 100644 index 000000000..712a97f3b --- /dev/null +++ b/dist/py/methods_directory/mathematical/regression/precision.py @@ -0,0 +1,28 @@ +# generated by datamodel-codegen: +# filename: methods_directory/mathematical/regression/precision.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel + + +class RegressionPrecisionPerPropertySchema(BaseModel): + name: Optional[str] = None + """ + property name in 'flattened' format + """ + trainingError: float + """ + training error of the estimator + """ + score: Optional[float] = None + """ + prediction score of the estimator. Eg: r2_score + """ + + +class RegressionPrecision(BaseModel): + perProperty: Optional[List[RegressionPrecisionPerPropertySchema]] = None diff --git a/dist/py/methods_directory/mathematical/regression/precision_per_property.py b/dist/py/methods_directory/mathematical/regression/precision_per_property.py new file mode 100644 index 000000000..17a3f2f64 --- /dev/null +++ b/dist/py/methods_directory/mathematical/regression/precision_per_property.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: methods_directory/mathematical/regression/precision_per_property.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class RegressionPrecisionPerPropertySchema(BaseModel): + name: Optional[str] = None + """ + property name in 'flattened' format + """ + trainingError: float + """ + training error of the estimator + """ + score: Optional[float] = None + """ + prediction score of the estimator. Eg: r2_score + """ diff --git a/dist/py/methods_directory/physical/__init__.py b/dist/py/methods_directory/physical/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/methods_directory/physical/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/methods_directory/physical/ao/__init__.py b/dist/py/methods_directory/physical/ao/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/methods_directory/physical/ao/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/methods_directory/physical/ao/dunning.py b/dist/py/methods_directory/physical/ao/dunning.py new file mode 100644 index 000000000..03a4348c7 --- /dev/null +++ b/dist/py/methods_directory/physical/ao/dunning.py @@ -0,0 +1,103 @@ +# generated by datamodel-codegen: +# filename: methods_directory/physical/ao/dunning.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + dunning = "dunning" + + +class SlugifiedEntryOrSlug64(Enum): + ao = "ao" + + +class SlugifiedEntryOrSlug65(Enum): + wf = "wf" + + +class SlugifiedEntryOrSlug66(Enum): + qm = "qm" + + +class DunningCorrelationConsistentBasisSetCategorySchema(BaseModel): + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug64]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug65]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug66]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class BasisSlug(Enum): + cc_pvdz = "cc-pvdz" + cc_pvtz = "cc-pvtz" + cc_pvqz = "cc-pvqz" + + +class Parameters(BaseModel): + basisSlug: Optional[BasisSlug] = None + + +class UnitMethodAoDunning(BaseModel): + categories: DunningCorrelationConsistentBasisSetCategorySchema = Field( + ..., title="Dunning correlation-consistent basis set category schema" + ) + """ + Used to categorize entities such as models and methods + """ + parameters: Optional[Parameters] = None + """ + Instructive parameters defining the method + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + + +class AoBasisDunning(BaseModel): + basisSlug: Optional[BasisSlug] = None diff --git a/dist/py/methods_directory/physical/ao/enum_options.py b/dist/py/methods_directory/physical/ao/enum_options.py new file mode 100644 index 000000000..0082393e5 --- /dev/null +++ b/dist/py/methods_directory/physical/ao/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: methods_directory/physical/ao/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/methods_directory/physical/ao/other.py b/dist/py/methods_directory/physical/ao/other.py new file mode 100644 index 000000000..cfcce7aa1 --- /dev/null +++ b/dist/py/methods_directory/physical/ao/other.py @@ -0,0 +1,107 @@ +# generated by datamodel-codegen: +# filename: methods_directory/physical/ao/other.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + other = "other" + + +class SlugifiedEntryOrSlug186(Enum): + ao = "ao" + + +class SlugifiedEntryOrSlug187(Enum): + wf = "wf" + + +class SlugifiedEntryOrSlug188(Enum): + qm = "qm" + + +class OtherNeitherPopleNorDunningBasisSetCategorySchema(BaseModel): + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug186]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug187]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug188]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class BasisSlug(Enum): + sto_3g = "sto-3g" + sto_4g = "sto-4g" + sto_6g = "sto-6g" + def2_svp = "def2-svp" + def2_tzvp = "def2-tzvp" + def2_qzvp = "def2-qzvp" + cbs_qb3 = "cbs-qb3" + + +class Parameters(BaseModel): + basisSlug: Optional[BasisSlug] = None + + +class UnitMethodAoOther(BaseModel): + categories: OtherNeitherPopleNorDunningBasisSetCategorySchema = Field( + ..., title="Other (neither Pople nor Dunning) basis set category schema" + ) + """ + Used to categorize entities such as models and methods + """ + parameters: Optional[Parameters] = None + """ + Instructive parameters defining the method + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + + +class AoBasisOther(BaseModel): + basisSlug: Optional[BasisSlug] = None diff --git a/dist/py/methods_directory/physical/ao/pople.py b/dist/py/methods_directory/physical/ao/pople.py new file mode 100644 index 000000000..82148e8f2 --- /dev/null +++ b/dist/py/methods_directory/physical/ao/pople.py @@ -0,0 +1,101 @@ +# generated by datamodel-codegen: +# filename: methods_directory/physical/ao/pople.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + pople = "pople" + + +class SlugifiedEntryOrSlug201(Enum): + ao = "ao" + + +class SlugifiedEntryOrSlug202(Enum): + wf = "wf" + + +class SlugifiedEntryOrSlug203(Enum): + qm = "qm" + + +class PopleBasisSetCategorySchema(BaseModel): + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug201]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug202]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug203]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class BasisSlug(Enum): + field_3_21G = "3-21G" + field_6_31G = "6-31G" + field_6_311G = "6-311G" + + +class Parameters(BaseModel): + basisSlug: Optional[BasisSlug] = None + + +class UnitMethodAoPople(BaseModel): + categories: PopleBasisSetCategorySchema = Field(..., title="Pople basis set category schema") + """ + Used to categorize entities such as models and methods + """ + parameters: Optional[Parameters] = None + """ + Instructive parameters defining the method + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + + +class AoBasisPople(BaseModel): + basisSlug: Optional[BasisSlug] = None diff --git a/dist/py/methods_directory/physical/psp/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py b/dist/py/methods_directory/physical/psp/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/methods_directory/physical/psp/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/methods_directory/physical/psp/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py b/dist/py/methods_directory/physical/psp/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py new file mode 100644 index 000000000..90264c197 --- /dev/null +++ b/dist/py/methods_directory/physical/psp/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py @@ -0,0 +1,31 @@ +# generated by datamodel-codegen: +# filename: methods_directory/physical/psp.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class Unit(Enum): + Ry = "Ry" + + +class AccuracyLevel(Enum): + standard = "standard" + low = "low" + high = "high" + + +class UsedForSuggestedWavefunctionAndChargeDensityCutoffs(BaseModel): + unit: Unit + """ + Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry. + """ + accuracy_level: AccuracyLevel + """ + Accuracy level determines suggested scalar value. + """ + value: float diff --git a/dist/py/methods_directory/physical/psp/__init__.py b/dist/py/methods_directory/physical/psp/__init__.py new file mode 100644 index 000000000..93e80fd56 --- /dev/null +++ b/dist/py/methods_directory/physical/psp/__init__.py @@ -0,0 +1,211 @@ +# generated by datamodel-codegen: +# filename: methods_directory/physical/psp.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, confloat, conint, constr + +from ..Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e import ( + g, +) + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + psp = "psp" + + +class SlugifiedEntryOrSlug209(Enum): + us = "us" + nc = "nc" + nc_fr = "nc-fr" + paw = "paw" + coulomb = "coulomb" + + +class SlugifiedEntryOrSlug210(Enum): + wf = "wf" + + +class SlugifiedEntryOrSlug211(Enum): + qm = "qm" + + +class PseudopotentialCategorySchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug209]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug210]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug211]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class Slug(Enum): + pseudopotential = "pseudopotential" + + +class Type(Enum): + us = "us" + nc = "nc" + nc_fr = "nc-fr" + paw = "paw" + coulomb = "coulomb" + + +class ExchangeCorrelation(BaseModel): + approximation: Optional[str] = None + """ + DFT approximation + """ + functional: Optional[str] = None + """ + Exchange correlation functional + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + + +class AtomicOrbitalSchema(BaseModel): + orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + orbitalIndex: Optional[conint(ge=1)] = None + principalNumber: Optional[conint(ge=1, le=7)] = None + angularMomentum: Optional[conint(ge=0, le=3)] = None + occupation: Optional[confloat(ge=0.0, le=14.0)] = None + """ + Shell occupation + """ + + +class Name(Enum): + pseudopotential = "pseudopotential" + + +class Cutoffs(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + wavefunction: Optional[List[g.UsedForSuggestedWavefunctionAndChargeDensityCutoffs]] = None + """ + Energy cutoff values for wavefunction plane wave expansion. + """ + density: Optional[List[g.UsedForSuggestedWavefunctionAndChargeDensityCutoffs]] = None + """ + Energy cutoff values for charge density plane wave expansion. + """ + + +class FileDataItem(BaseModel): + element: str + """ + chemical element + """ + hash: str + """ + MD5 hash of the pseudopotential file + """ + type: Type + source: str + """ + explains where this came from + """ + version: Optional[str] = None + """ + explains the version of where this came from + """ + exchangeCorrelation: ExchangeCorrelation + valenceConfiguration: Optional[List[AtomicOrbitalSchema]] = None + """ + contains pseudo orbital information, including orbital names and occupations + """ + path: str + """ + location of the pseudopotential file on filesystem + """ + apps: List[str] + """ + The names of the simulation engines that can use this pseudopotential, e.g. espresso + """ + filename: Optional[str] = None + """ + filename of pseudopotential file on filesystem + """ + name: Name + """ + name of the data category + """ + cutoffs: Optional[Cutoffs] = None + """ + Suggested cutoff values for wave function and charge density. + """ + + +class Source(BaseModel): + info: Optional[Dict[str, Any]] = None + type: Optional[str] = None + + +class PseudopotentialFile(BaseModel): + slug: Optional[Slug] = None + data: Optional[FileDataItem] = Field(None, title="File data item") + source: Optional[Source] = None + """ + TODO: remove in the future + """ + + +class UnitMethodPseudopotential(BaseModel): + categories: PseudopotentialCategorySchema = Field(..., title="Pseudopotential category schema") + """ + Used to categorize entities such as models and methods + """ + data: Optional[List[PseudopotentialFile]] = None + parameters: Optional[Dict[str, Any]] = None + """ + Instructive parameters defining the method + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/methods_directory/physical/psp/file.py b/dist/py/methods_directory/physical/psp/file.py new file mode 100644 index 000000000..55069e2d0 --- /dev/null +++ b/dist/py/methods_directory/physical/psp/file.py @@ -0,0 +1,129 @@ +# generated by datamodel-codegen: +# filename: methods_directory/physical/psp/file.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel, ConfigDict, Field, confloat, conint, constr + +from .Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e import ( + g, +) + + +class Slug(Enum): + pseudopotential = "pseudopotential" + + +class Type(Enum): + us = "us" + nc = "nc" + nc_fr = "nc-fr" + paw = "paw" + coulomb = "coulomb" + + +class ExchangeCorrelation(BaseModel): + approximation: Optional[str] = None + """ + DFT approximation + """ + functional: Optional[str] = None + """ + Exchange correlation functional + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + + +class AtomicOrbitalSchema(BaseModel): + orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + orbitalIndex: Optional[conint(ge=1)] = None + principalNumber: Optional[conint(ge=1, le=7)] = None + angularMomentum: Optional[conint(ge=0, le=3)] = None + occupation: Optional[confloat(ge=0.0, le=14.0)] = None + """ + Shell occupation + """ + + +class Name(Enum): + pseudopotential = "pseudopotential" + + +class Cutoffs(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + wavefunction: Optional[List[g.UsedForSuggestedWavefunctionAndChargeDensityCutoffs]] = None + """ + Energy cutoff values for wavefunction plane wave expansion. + """ + density: Optional[List[g.UsedForSuggestedWavefunctionAndChargeDensityCutoffs]] = None + """ + Energy cutoff values for charge density plane wave expansion. + """ + + +class FileDataItem(BaseModel): + element: str + """ + chemical element + """ + hash: str + """ + MD5 hash of the pseudopotential file + """ + type: Type + source: str + """ + explains where this came from + """ + version: Optional[str] = None + """ + explains the version of where this came from + """ + exchangeCorrelation: ExchangeCorrelation + valenceConfiguration: Optional[List[AtomicOrbitalSchema]] = None + """ + contains pseudo orbital information, including orbital names and occupations + """ + path: str + """ + location of the pseudopotential file on filesystem + """ + apps: List[str] + """ + The names of the simulation engines that can use this pseudopotential, e.g. espresso + """ + filename: Optional[str] = None + """ + filename of pseudopotential file on filesystem + """ + name: Name + """ + name of the data category + """ + cutoffs: Optional[Cutoffs] = None + """ + Suggested cutoff values for wave function and charge density. + """ + + +class Source(BaseModel): + info: Optional[Dict[str, Any]] = None + type: Optional[str] = None + + +class PseudopotentialFile(BaseModel): + slug: Optional[Slug] = None + data: Optional[FileDataItem] = Field(None, title="File data item") + source: Optional[Source] = None + """ + TODO: remove in the future + """ diff --git a/dist/py/methods_directory/physical/psp/file/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py b/dist/py/methods_directory/physical/psp/file/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/methods_directory/physical/psp/file/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/methods_directory/physical/psp/file/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py b/dist/py/methods_directory/physical/psp/file/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py new file mode 100644 index 000000000..8320bb527 --- /dev/null +++ b/dist/py/methods_directory/physical/psp/file/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py @@ -0,0 +1,31 @@ +# generated by datamodel-codegen: +# filename: methods_directory/physical/psp/file.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class Unit(Enum): + Ry = "Ry" + + +class AccuracyLevel(Enum): + standard = "standard" + low = "low" + high = "high" + + +class UsedForSuggestedWavefunctionAndChargeDensityCutoffs(BaseModel): + unit: Unit + """ + Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry. + """ + accuracy_level: AccuracyLevel + """ + Accuracy level determines suggested scalar value. + """ + value: float diff --git a/dist/py/methods_directory/physical/psp/file_data_item.py b/dist/py/methods_directory/physical/psp/file_data_item.py new file mode 100644 index 000000000..9ced16fb6 --- /dev/null +++ b/dist/py/methods_directory/physical/psp/file_data_item.py @@ -0,0 +1,111 @@ +# generated by datamodel-codegen: +# filename: methods_directory/physical/psp/file_data_item.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, ConfigDict, Field, confloat, conint, constr + +from .Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e import ( + g, +) + + +class Type(Enum): + us = "us" + nc = "nc" + nc_fr = "nc-fr" + paw = "paw" + coulomb = "coulomb" + + +class ExchangeCorrelation(BaseModel): + approximation: Optional[str] = None + """ + DFT approximation + """ + functional: Optional[str] = None + """ + Exchange correlation functional + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + + +class AtomicOrbitalSchema(BaseModel): + orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + orbitalIndex: Optional[conint(ge=1)] = None + principalNumber: Optional[conint(ge=1, le=7)] = None + angularMomentum: Optional[conint(ge=0, le=3)] = None + occupation: Optional[confloat(ge=0.0, le=14.0)] = None + """ + Shell occupation + """ + + +class Name(Enum): + pseudopotential = "pseudopotential" + + +class Cutoffs(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + wavefunction: Optional[List[g.UsedForSuggestedWavefunctionAndChargeDensityCutoffs]] = None + """ + Energy cutoff values for wavefunction plane wave expansion. + """ + density: Optional[List[g.UsedForSuggestedWavefunctionAndChargeDensityCutoffs]] = None + """ + Energy cutoff values for charge density plane wave expansion. + """ + + +class FileDataItem(BaseModel): + element: str + """ + chemical element + """ + hash: str + """ + MD5 hash of the pseudopotential file + """ + type: Type + source: str + """ + explains where this came from + """ + version: Optional[str] = None + """ + explains the version of where this came from + """ + exchangeCorrelation: ExchangeCorrelation + valenceConfiguration: Optional[List[AtomicOrbitalSchema]] = None + """ + contains pseudo orbital information, including orbital names and occupations + """ + path: str + """ + location of the pseudopotential file on filesystem + """ + apps: List[str] + """ + The names of the simulation engines that can use this pseudopotential, e.g. espresso + """ + filename: Optional[str] = None + """ + filename of pseudopotential file on filesystem + """ + name: Name + """ + name of the data category + """ + cutoffs: Optional[Cutoffs] = None + """ + Suggested cutoff values for wave function and charge density. + """ diff --git a/dist/py/methods_directory/physical/psp/file_data_item/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py b/dist/py/methods_directory/physical/psp/file_data_item/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/methods_directory/physical/psp/file_data_item/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/methods_directory/physical/psp/file_data_item/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py b/dist/py/methods_directory/physical/psp/file_data_item/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py new file mode 100644 index 000000000..f004255b9 --- /dev/null +++ b/dist/py/methods_directory/physical/psp/file_data_item/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py @@ -0,0 +1,31 @@ +# generated by datamodel-codegen: +# filename: methods_directory/physical/psp/file_data_item.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class Unit(Enum): + Ry = "Ry" + + +class AccuracyLevel(Enum): + standard = "standard" + low = "low" + high = "high" + + +class UsedForSuggestedWavefunctionAndChargeDensityCutoffs(BaseModel): + unit: Unit + """ + Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry. + """ + accuracy_level: AccuracyLevel + """ + Accuracy level determines suggested scalar value. + """ + value: float diff --git a/dist/py/methods_directory/physical/pw.py b/dist/py/methods_directory/physical/pw.py new file mode 100644 index 000000000..1211d53ba --- /dev/null +++ b/dist/py/methods_directory/physical/pw.py @@ -0,0 +1,83 @@ +# generated by datamodel-codegen: +# filename: methods_directory/physical/pw.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + pw = "pw" + + +class SlugifiedEntryOrSlug217(Enum): + wf = "wf" + + +class SlugifiedEntryOrSlug218(Enum): + qm = "qm" + + +class PlaneWaveCatgeorySchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug217]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug218]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class UnitMethodPlaneWave(BaseModel): + categories: PlaneWaveCatgeorySchema = Field(..., title="Plane wave catgeory schema") + """ + Used to categorize entities such as models and methods + """ + parameters: Optional[Dict[str, Any]] = None + """ + Instructive parameters defining the method + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/methods_directory/physical/smearing.py b/dist/py/methods_directory/physical/smearing.py new file mode 100644 index 000000000..8d8757849 --- /dev/null +++ b/dist/py/methods_directory/physical/smearing.py @@ -0,0 +1,90 @@ +# generated by datamodel-codegen: +# filename: methods_directory/physical/smearing.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + smearing = "smearing" + + +class SlugifiedEntryOrSlug243(Enum): + gaussian = "gaussian" + marzari_vanderbilt = "marzari-vanderbilt" + methfessel_paxton = "methfessel-paxton" + fermi_dirac = "fermi-dirac" + + +class SlugifiedEntryOrSlug244(Enum): + wf = "wf" + + +class SlugifiedEntryOrSlug245(Enum): + qm = "qm" + + +class SmearingMethodsCategorySchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug243]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug244]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug245]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class UnitMethodSmearing(BaseModel): + categories: SmearingMethodsCategorySchema = Field(..., title="Smearing methods category schema") + """ + Approximating Heaviside step function with smooth function + """ + parameters: Optional[Dict[str, Any]] = None + """ + Instructive parameters defining the method + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/methods_directory/physical/tetrahedron.py b/dist/py/methods_directory/physical/tetrahedron.py new file mode 100644 index 000000000..dfaaaa797 --- /dev/null +++ b/dist/py/methods_directory/physical/tetrahedron.py @@ -0,0 +1,91 @@ +# generated by datamodel-codegen: +# filename: methods_directory/physical/tetrahedron.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + tetrahedron = "tetrahedron" + + +class SlugifiedEntryOrSlug261(Enum): + linear = "linear" + optimized = "optimized" + bloechl = "bloechl" + + +class SlugifiedEntryOrSlug262(Enum): + wf = "wf" + + +class SlugifiedEntryOrSlug263(Enum): + qm = "qm" + + +class TetrahedronMethodForBrillouinZoneIntegrationCategorySchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug261]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug262]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug263]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class UnitMethodTetrahedron(BaseModel): + categories: TetrahedronMethodForBrillouinZoneIntegrationCategorySchema = Field( + ..., title="Tetrahedron method for Brillouin zone integration category schema" + ) + """ + Used to categorize entities such as models and methods + """ + parameters: Optional[Dict[str, Any]] = None + """ + Instructive parameters defining the method + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/model/__init__.py b/dist/py/model/__init__.py new file mode 100644 index 000000000..e9fc87cc7 --- /dev/null +++ b/dist/py/model/__init__.py @@ -0,0 +1,43 @@ +# generated by datamodel-codegen: +# filename: model.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, Optional + +from pydantic import BaseModel, ConfigDict, Field + + +class BaseMethod(BaseModel): + type: str + """ + general type of this method, eg. `pseudopotential` + """ + subtype: str + """ + general subtype of this method, eg. `ultra-soft` + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + data: Optional[Dict[str, Any]] = None + """ + additional data specific to method, eg. array of pseudopotentials + """ + + +class BaseModel1(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + type: str + """ + general type of the model, eg. `dft` + """ + subtype: str + """ + general subtype of the model, eg. `lda` + """ + method: BaseMethod = Field(..., title="base method") diff --git a/dist/py/model/categorized_model.py b/dist/py/model/categorized_model.py new file mode 100644 index 000000000..2affe495a --- /dev/null +++ b/dist/py/model/categorized_model.py @@ -0,0 +1,211 @@ +# generated by datamodel-codegen: +# filename: model/categorized_model.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class ReusableCategoriesSchema(BaseModel): + tier1: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class CategorizedUnitMethod(BaseModel): + categories: Optional[ReusableCategoriesSchema] = Field(None, title="Reusable categories schema") + """ + Used to categorize entities such as models and methods + """ + parameters: Optional[Dict[str, Any]] = None + """ + Instructive parameters defining the method + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + + +class CategorizedMethod(BaseModel): + units: List[CategorizedUnitMethod] + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + + +class ReusableCategoriesSchema3(BaseModel): + tier1: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class Type(Enum): + literature = "literature" + + +class PagesSchema(BaseModel): + start: str + end: Optional[str] = None + + +class ExperimentAuthorSchema(BaseModel): + first: str + middle: Optional[str] = None + last: str + affiliation: Optional[str] = None + + +class LiteratureReferenceSchema(BaseModel): + type: Optional[Type] = None + doi: Optional[str] = None + """ + Digital Object Identifier of the reference. + """ + isbn: Optional[str] = None + """ + International Standard Book Number of the reference. + """ + issn: Optional[str] = None + """ + International Standard Serial Number of the reference. + """ + url: Optional[str] = None + """ + Internet address of the reference. + """ + title: Optional[str] = None + """ + Title of the work. + """ + publisher: Optional[str] = None + """ + Publisher of the work. + """ + journal: Optional[str] = None + """ + Journal in which the work appeared. + """ + volume: Optional[str] = None + """ + Volume of the series in which the work appeared. + """ + year: Optional[str] = None + """ + Year in which the reference was published. + """ + issue: Optional[str] = None + """ + Issue of the collection in which the work appeared. + """ + pages: Optional[PagesSchema] = Field(None, title="pages schema") + """ + Start and end pages of the work. + """ + authors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of authors of the work. + """ + editors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of editors of the work. + """ + reference: Optional[List[Dict[str, Any]]] = None + """ + References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published. + """ + + +class CategorizedModel(BaseModel): + method: CategorizedMethod = Field(..., title="categorized method") + categories: ReusableCategoriesSchema3 = Field(..., title="Reusable categories schema") + """ + Used to categorize entities such as models and methods + """ + parameters: Dict[str, Any] + """ + Model parameters defined in-place or via model mixins + """ + reference: Optional[LiteratureReferenceSchema] = Field(None, title="literature reference schema") + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/model/mixins/__init__.py b/dist/py/model/mixins/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/model/mixins/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/model/mixins/dft/__init__.py b/dist/py/model/mixins/dft/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/model/mixins/dft/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/model/mixins/dft/double_hybrid_functional.py b/dist/py/model/mixins/dft/double_hybrid_functional.py new file mode 100644 index 000000000..3ea64805f --- /dev/null +++ b/dist/py/model/mixins/dft/double_hybrid_functional.py @@ -0,0 +1,18 @@ +# generated by datamodel-codegen: +# filename: model/mixins/dft/double_hybrid_functional.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel + + +class Functional(Enum): + b2plyp = "b2plyp" + + +class DoubleHybridFunctionalMixin(BaseModel): + functional: Optional[Functional] = None diff --git a/dist/py/model/mixins/dft/enum_options.py b/dist/py/model/mixins/dft/enum_options.py new file mode 100644 index 000000000..6e5a00ec8 --- /dev/null +++ b/dist/py/model/mixins/dft/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: model/mixins/dft/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/model/mixins/dft/gga_functional.py b/dist/py/model/mixins/dft/gga_functional.py new file mode 100644 index 000000000..03c6b8c4a --- /dev/null +++ b/dist/py/model/mixins/dft/gga_functional.py @@ -0,0 +1,22 @@ +# generated by datamodel-codegen: +# filename: model/mixins/dft/gga_functional.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, ConfigDict + + +class Functional(Enum): + pbe = "pbe" + pbesol = "pbesol" + + +class GGAFunctionalMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None diff --git a/dist/py/model/mixins/dft/hybrid_functional.py b/dist/py/model/mixins/dft/hybrid_functional.py new file mode 100644 index 000000000..6fc49bbf6 --- /dev/null +++ b/dist/py/model/mixins/dft/hybrid_functional.py @@ -0,0 +1,19 @@ +# generated by datamodel-codegen: +# filename: model/mixins/dft/hybrid_functional.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel + + +class Functional(Enum): + hse06 = "hse06" + b3lyp = "b3lyp" + + +class HybridFunctionalMixin(BaseModel): + functional: Optional[Functional] = None diff --git a/dist/py/model/mixins/dft/lda_functional.py b/dist/py/model/mixins/dft/lda_functional.py new file mode 100644 index 000000000..88e9f28c7 --- /dev/null +++ b/dist/py/model/mixins/dft/lda_functional.py @@ -0,0 +1,21 @@ +# generated by datamodel-codegen: +# filename: model/mixins/dft/lda_functional.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, ConfigDict + + +class Functional(Enum): + pz = "pz" + + +class LDAFunctionalMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None diff --git a/dist/py/model/mixins/dft/mgga_functional.py b/dist/py/model/mixins/dft/mgga_functional.py new file mode 100644 index 000000000..801a5b4e3 --- /dev/null +++ b/dist/py/model/mixins/dft/mgga_functional.py @@ -0,0 +1,21 @@ +# generated by datamodel-codegen: +# filename: model/mixins/dft/mgga_functional.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, ConfigDict + + +class Functional(Enum): + scan = "scan" + + +class MetaGGAFunctionalMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None diff --git a/dist/py/model/mixins/dispersion_correction.py b/dist/py/model/mixins/dispersion_correction.py new file mode 100644 index 000000000..fc32da5e3 --- /dev/null +++ b/dist/py/model/mixins/dispersion_correction.py @@ -0,0 +1,21 @@ +# generated by datamodel-codegen: +# filename: model/mixins/dispersion_correction.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel + + +class DispersionCorrection(Enum): + dft_d2 = "dft-d2" + dft_d3 = "dft-d3" + xdm = "xdm" + ts = "ts" + + +class DispersionCorrectionMixin(BaseModel): + dispersionCorrection: Optional[DispersionCorrection] = None diff --git a/dist/py/model/mixins/enum_options.py b/dist/py/model/mixins/enum_options.py new file mode 100644 index 000000000..f903e33ab --- /dev/null +++ b/dist/py/model/mixins/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: model/mixins/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/model/mixins/hubbard.py b/dist/py/model/mixins/hubbard.py new file mode 100644 index 000000000..3d44d1b5b --- /dev/null +++ b/dist/py/model/mixins/hubbard.py @@ -0,0 +1,18 @@ +# generated by datamodel-codegen: +# filename: model/mixins/hubbard.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel + + +class HubbardType(Enum): + u = "u" + + +class HubbardModelMixin(BaseModel): + hubbardType: Optional[HubbardType] = None diff --git a/dist/py/model/mixins/spin_orbit_coupling.py b/dist/py/model/mixins/spin_orbit_coupling.py new file mode 100644 index 000000000..7574ff899 --- /dev/null +++ b/dist/py/model/mixins/spin_orbit_coupling.py @@ -0,0 +1,16 @@ +# generated by datamodel-codegen: +# filename: model/mixins/spin_orbit_coupling.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, ConfigDict + + +class SpinOrbitCouplingMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + spinOrbitCoupling: Optional[bool] = None diff --git a/dist/py/model/mixins/spin_polarization.py b/dist/py/model/mixins/spin_polarization.py new file mode 100644 index 000000000..5d6ba2cae --- /dev/null +++ b/dist/py/model/mixins/spin_polarization.py @@ -0,0 +1,22 @@ +# generated by datamodel-codegen: +# filename: model/mixins/spin_polarization.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, ConfigDict + + +class SpinPolarization(Enum): + collinear = "collinear" + non_collinear = "non-collinear" + + +class SpinPolarizationMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + spinPolarization: Optional[SpinPolarization] = None diff --git a/dist/py/model/model_parameters.py b/dist/py/model/model_parameters.py new file mode 100644 index 000000000..f5791c05c --- /dev/null +++ b/dist/py/model/model_parameters.py @@ -0,0 +1,123 @@ +# generated by datamodel-codegen: +# filename: model/model_parameters.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, RootModel + + +class HubbardType(Enum): + u = "u" + + +class SpinPolarization(Enum): + collinear = "collinear" + non_collinear = "non-collinear" + + +class DispersionCorrection(Enum): + dft_d2 = "dft-d2" + dft_d3 = "dft-d3" + xdm = "xdm" + ts = "ts" + + +class Functional(Enum): + pz = "pz" + + +class LDAFunctionalMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + hubbardType: Optional[HubbardType] = None + spinPolarization: Optional[SpinPolarization] = None + spinOrbitCoupling: Optional[bool] = None + dispersionCorrection: Optional[DispersionCorrection] = None + functional: Optional[Functional] = None + + +class Functional37(Enum): + pbe = "pbe" + pbesol = "pbesol" + + +class GGAFunctionalMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + hubbardType: Optional[HubbardType] = None + spinPolarization: Optional[SpinPolarization] = None + spinOrbitCoupling: Optional[bool] = None + dispersionCorrection: Optional[DispersionCorrection] = None + functional: Optional[Functional37] = None + + +class Functional38(Enum): + scan = "scan" + + +class MetaGGAFunctionalMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + hubbardType: Optional[HubbardType] = None + spinPolarization: Optional[SpinPolarization] = None + spinOrbitCoupling: Optional[bool] = None + dispersionCorrection: Optional[DispersionCorrection] = None + functional: Optional[Functional38] = None + + +class Functional39(Enum): + hse06 = "hse06" + b3lyp = "b3lyp" + + +class HybridFunctionalMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + hubbardType: Optional[HubbardType] = None + spinPolarization: Optional[SpinPolarization] = None + spinOrbitCoupling: Optional[bool] = None + dispersionCorrection: Optional[DispersionCorrection] = None + functional: Optional[Functional39] = None + + +class Functional40(Enum): + b2plyp = "b2plyp" + + +class DoubleHybridFunctionalMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + hubbardType: Optional[HubbardType] = None + spinPolarization: Optional[SpinPolarization] = None + spinOrbitCoupling: Optional[bool] = None + dispersionCorrection: Optional[DispersionCorrection] = None + functional: Optional[Functional40] = None + + +class ESSE( + RootModel[ + Union[ + LDAFunctionalMixin, + GGAFunctionalMixin, + MetaGGAFunctionalMixin, + HybridFunctionalMixin, + DoubleHybridFunctionalMixin, + ] + ] +): + root: Union[ + LDAFunctionalMixin, + GGAFunctionalMixin, + MetaGGAFunctionalMixin, + HybridFunctionalMixin, + DoubleHybridFunctionalMixin, + ] = Field(..., title="ModelParameters") diff --git a/dist/py/model/model_without_method.py b/dist/py/model/model_without_method.py new file mode 100644 index 000000000..bd09f67e4 --- /dev/null +++ b/dist/py/model/model_without_method.py @@ -0,0 +1,144 @@ +# generated by datamodel-codegen: +# filename: model/model_without_method.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class ReusableCategoriesSchema(BaseModel): + tier1: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class Type(Enum): + literature = "literature" + + +class PagesSchema(BaseModel): + start: str + end: Optional[str] = None + + +class ExperimentAuthorSchema(BaseModel): + first: str + middle: Optional[str] = None + last: str + affiliation: Optional[str] = None + + +class LiteratureReferenceSchema(BaseModel): + type: Optional[Type] = None + doi: Optional[str] = None + """ + Digital Object Identifier of the reference. + """ + isbn: Optional[str] = None + """ + International Standard Book Number of the reference. + """ + issn: Optional[str] = None + """ + International Standard Serial Number of the reference. + """ + url: Optional[str] = None + """ + Internet address of the reference. + """ + title: Optional[str] = None + """ + Title of the work. + """ + publisher: Optional[str] = None + """ + Publisher of the work. + """ + journal: Optional[str] = None + """ + Journal in which the work appeared. + """ + volume: Optional[str] = None + """ + Volume of the series in which the work appeared. + """ + year: Optional[str] = None + """ + Year in which the reference was published. + """ + issue: Optional[str] = None + """ + Issue of the collection in which the work appeared. + """ + pages: Optional[PagesSchema] = Field(None, title="pages schema") + """ + Start and end pages of the work. + """ + authors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of authors of the work. + """ + editors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of editors of the work. + """ + reference: Optional[List[Dict[str, Any]]] = None + """ + References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published. + """ + + +class ModelWithoutMethodSchemaBase(BaseModel): + categories: ReusableCategoriesSchema = Field(..., title="Reusable categories schema") + """ + Used to categorize entities such as models and methods + """ + parameters: Dict[str, Any] + """ + Model parameters defined in-place or via model mixins + """ + reference: Optional[LiteratureReferenceSchema] = Field(None, title="literature reference schema") + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/models_category/__init__.py b/dist/py/models_category/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/models_category/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/models_category/enum_options.py b/dist/py/models_category/enum_options.py new file mode 100644 index 000000000..7db1abb8a --- /dev/null +++ b/dist/py/models_category/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: models_category/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/models_category/pb/__init__.py b/dist/py/models_category/pb/__init__.py new file mode 100644 index 000000000..7c93861c6 --- /dev/null +++ b/dist/py/models_category/pb/__init__.py @@ -0,0 +1,48 @@ +# generated by datamodel-codegen: +# filename: models_category/pb.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + pb = "pb" + + +class PhysicsBasedModelCategorySchema(BaseModel): + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/models_category/pb/enum_options.py b/dist/py/models_category/pb/enum_options.py new file mode 100644 index 000000000..b63f0f856 --- /dev/null +++ b/dist/py/models_category/pb/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: models_category/pb/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/models_category/pb/qm/__init__.py b/dist/py/models_category/pb/qm/__init__.py new file mode 100644 index 000000000..a410c7c2f --- /dev/null +++ b/dist/py/models_category/pb/qm/__init__.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: models_category/pb/qm.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug223(Enum): + pb = "pb" + + +class QuantumMechanicalCategorySchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug223]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/models_category/pb/qm/abin/__init__.py b/dist/py/models_category/pb/qm/abin/__init__.py new file mode 100644 index 000000000..0e2e1196a --- /dev/null +++ b/dist/py/models_category/pb/qm/abin/__init__.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: models_category/pb/qm/abin.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + abin = "abin" + + +class SlugifiedEntryOrSlug1(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug2(Enum): + pb = "pb" + + +class AbInitioCategorySchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug1]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug2]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/models_category/pb/qm/abin/enum_options.py b/dist/py/models_category/pb/qm/abin/enum_options.py new file mode 100644 index 000000000..27a78ed8b --- /dev/null +++ b/dist/py/models_category/pb/qm/abin/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: models_category/pb/qm/abin/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/models_category/pb/qm/abin/gw.py b/dist/py/models_category/pb/qm/abin/gw.py new file mode 100644 index 000000000..90df3b0a6 --- /dev/null +++ b/dist/py/models_category/pb/qm/abin/gw.py @@ -0,0 +1,66 @@ +# generated by datamodel-codegen: +# filename: models_category/pb/qm/abin/gw.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + gw = "gw" + + +class SlugifiedEntryOrSlug91(Enum): + g0w0 = "g0w0" + evgw0 = "evgw0" + evgw = "evgw" + + +class SlugifiedEntryOrSlug92(Enum): + abin = "abin" + + +class SlugifiedEntryOrSlug93(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug94(Enum): + pb = "pb" + + +class GWCategorySchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug91]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug92]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug93]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug94]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/models_category/pb/qm/dft/__init__.py b/dist/py/models_category/pb/qm/dft/__init__.py new file mode 100644 index 000000000..dc3319917 --- /dev/null +++ b/dist/py/models_category/pb/qm/dft/__init__.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: models_category/pb/qm/dft.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + dft = "dft" + + +class SlugifiedEntryOrSlug40(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug41(Enum): + pb = "pb" + + +class DensityFunctionalTheoryCategorySchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug40]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug41]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/models_category/pb/qm/dft/enum_options.py b/dist/py/models_category/pb/qm/dft/enum_options.py new file mode 100644 index 000000000..463511212 --- /dev/null +++ b/dist/py/models_category/pb/qm/dft/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: models_category/pb/qm/dft/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/models_category/pb/qm/dft/ksdft/__init__.py b/dist/py/models_category/pb/qm/dft/ksdft/__init__.py new file mode 100644 index 000000000..b57e8d823 --- /dev/null +++ b/dist/py/models_category/pb/qm/dft/ksdft/__init__.py @@ -0,0 +1,60 @@ +# generated by datamodel-codegen: +# filename: models_category/pb/qm/dft/ksdft.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + ksdft = "ksdft" + + +class SlugifiedEntryOrSlug120(Enum): + dft = "dft" + + +class SlugifiedEntryOrSlug121(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug122(Enum): + pb = "pb" + + +class KohnShamDFTCategorySchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug120]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug121]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug122]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/models_category/pb/qm/dft/ksdft/double_hybrid.py b/dist/py/models_category/pb/qm/dft/ksdft/double_hybrid.py new file mode 100644 index 000000000..b46a09c40 --- /dev/null +++ b/dist/py/models_category/pb/qm/dft/ksdft/double_hybrid.py @@ -0,0 +1,64 @@ +# generated by datamodel-codegen: +# filename: models_category/pb/qm/dft/ksdft/double_hybrid.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + double_hybrid = "double-hybrid" + + +class SlugifiedEntryOrSlug54(Enum): + ksdft = "ksdft" + + +class SlugifiedEntryOrSlug55(Enum): + dft = "dft" + + +class SlugifiedEntryOrSlug56(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug57(Enum): + pb = "pb" + + +class DFTDoubleHybridFunctionalCategorySchema(BaseModel): + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug54]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug55]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug56]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug57]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/models_category/pb/qm/dft/ksdft/enum_options.py b/dist/py/models_category/pb/qm/dft/ksdft/enum_options.py new file mode 100644 index 000000000..118c356f4 --- /dev/null +++ b/dist/py/models_category/pb/qm/dft/ksdft/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: models_category/pb/qm/dft/ksdft/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/models_category/pb/qm/dft/ksdft/gga.py b/dist/py/models_category/pb/qm/dft/ksdft/gga.py new file mode 100644 index 000000000..006c63520 --- /dev/null +++ b/dist/py/models_category/pb/qm/dft/ksdft/gga.py @@ -0,0 +1,64 @@ +# generated by datamodel-codegen: +# filename: models_category/pb/qm/dft/ksdft/gga.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + gga = "gga" + + +class SlugifiedEntryOrSlug81(Enum): + ksdft = "ksdft" + + +class SlugifiedEntryOrSlug82(Enum): + dft = "dft" + + +class SlugifiedEntryOrSlug83(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug84(Enum): + pb = "pb" + + +class DFTGGAFunctionalCategorySchema(BaseModel): + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug81]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug82]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug83]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug84]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/models_category/pb/qm/dft/ksdft/hybrid.py b/dist/py/models_category/pb/qm/dft/ksdft/hybrid.py new file mode 100644 index 000000000..7648baf0e --- /dev/null +++ b/dist/py/models_category/pb/qm/dft/ksdft/hybrid.py @@ -0,0 +1,64 @@ +# generated by datamodel-codegen: +# filename: models_category/pb/qm/dft/ksdft/hybrid.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + hybrid = "hybrid" + + +class SlugifiedEntryOrSlug101(Enum): + ksdft = "ksdft" + + +class SlugifiedEntryOrSlug102(Enum): + dft = "dft" + + +class SlugifiedEntryOrSlug103(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug104(Enum): + pb = "pb" + + +class DFTHybridFunctionalCategorySchema(BaseModel): + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug101]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug102]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug103]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug104]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/models_category/pb/qm/dft/ksdft/lda.py b/dist/py/models_category/pb/qm/dft/ksdft/lda.py new file mode 100644 index 000000000..621c673d1 --- /dev/null +++ b/dist/py/models_category/pb/qm/dft/ksdft/lda.py @@ -0,0 +1,64 @@ +# generated by datamodel-codegen: +# filename: models_category/pb/qm/dft/ksdft/lda.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + lda = "lda" + + +class SlugifiedEntryOrSlug124(Enum): + ksdft = "ksdft" + + +class SlugifiedEntryOrSlug125(Enum): + dft = "dft" + + +class SlugifiedEntryOrSlug126(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug127(Enum): + pb = "pb" + + +class DFTLDAFunctionalCategorySchema(BaseModel): + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug124]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug125]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug126]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug127]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/models_category/pb/qm/dft/ksdft/mgga.py b/dist/py/models_category/pb/qm/dft/ksdft/mgga.py new file mode 100644 index 000000000..432366ef8 --- /dev/null +++ b/dist/py/models_category/pb/qm/dft/ksdft/mgga.py @@ -0,0 +1,64 @@ +# generated by datamodel-codegen: +# filename: models_category/pb/qm/dft/ksdft/mgga.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + mgga = "mgga" + + +class SlugifiedEntryOrSlug147(Enum): + ksdft = "ksdft" + + +class SlugifiedEntryOrSlug148(Enum): + dft = "dft" + + +class SlugifiedEntryOrSlug149(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug150(Enum): + pb = "pb" + + +class DFTMetaGGAFunctionalCategorySchema(BaseModel): + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug147]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug148]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug149]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug150]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/models_category/pb/qm/enum_options.py b/dist/py/models_category/pb/qm/enum_options.py new file mode 100644 index 000000000..4ed5f5040 --- /dev/null +++ b/dist/py/models_category/pb/qm/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: models_category/pb/qm/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/models_category/pb/qm/semp.py b/dist/py/models_category/pb/qm/semp.py new file mode 100644 index 000000000..f5bd12572 --- /dev/null +++ b/dist/py/models_category/pb/qm/semp.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: models_category/pb/qm/semp.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + semp = "semp" + + +class SlugifiedEntryOrSlug240(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug241(Enum): + pb = "pb" + + +class SemiEmpiricalCategorySchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug240]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug241]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/models_category/st/__init__.py b/dist/py/models_category/st/__init__.py new file mode 100644 index 000000000..5e09db9a0 --- /dev/null +++ b/dist/py/models_category/st/__init__.py @@ -0,0 +1,48 @@ +# generated by datamodel-codegen: +# filename: models_category/st.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + st = "st" + + +class StatisticalModelCategorySchema(BaseModel): + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/models_category/st/det/__init__.py b/dist/py/models_category/st/det/__init__.py new file mode 100644 index 000000000..06c5ecfa4 --- /dev/null +++ b/dist/py/models_category/st/det/__init__.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: models_category/st/det.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + det = "det" + + +class SlugifiedEntryOrSlug38(Enum): + st = "st" + + +class DeterministicModelCategorySchema(BaseModel): + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug38]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/models_category/st/det/enum_options.py b/dist/py/models_category/st/det/enum_options.py new file mode 100644 index 000000000..a97a54522 --- /dev/null +++ b/dist/py/models_category/st/det/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: models_category/st/det/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/models_category/st/det/ml/__init__.py b/dist/py/models_category/st/det/ml/__init__.py new file mode 100644 index 000000000..af7e0a4df --- /dev/null +++ b/dist/py/models_category/st/det/ml/__init__.py @@ -0,0 +1,56 @@ +# generated by datamodel-codegen: +# filename: models_category/st/det/ml.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + ml = "ml" + + +class SlugifiedEntryOrSlug157(Enum): + det = "det" + + +class SlugifiedEntryOrSlug158(Enum): + st = "st" + + +class MachineLearningModelCategorySchema(BaseModel): + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug157]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug158]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/models_category/st/det/ml/enum_options.py b/dist/py/models_category/st/det/ml/enum_options.py new file mode 100644 index 000000000..11b68b5dd --- /dev/null +++ b/dist/py/models_category/st/det/ml/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: models_category/st/det/ml/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/models_category/st/det/ml/re.py b/dist/py/models_category/st/det/ml/re.py new file mode 100644 index 000000000..91abc1caa --- /dev/null +++ b/dist/py/models_category/st/det/ml/re.py @@ -0,0 +1,60 @@ +# generated by datamodel-codegen: +# filename: models_category/st/det/ml/re.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + re = "re" + + +class SlugifiedEntryOrSlug226(Enum): + ml = "ml" + + +class SlugifiedEntryOrSlug227(Enum): + det = "det" + + +class SlugifiedEntryOrSlug228(Enum): + st = "st" + + +class RegressionModelCategorySchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug226]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug227]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug228]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ diff --git a/dist/py/models_category/st/enum_options.py b/dist/py/models_category/st/enum_options.py new file mode 100644 index 000000000..65e76fa60 --- /dev/null +++ b/dist/py/models_category/st/enum_options.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: models_category/st/enum_options.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any + +from pydantic import RootModel + + +class ESSE(RootModel[Any]): + root: Any diff --git a/dist/py/models_directory/__init__.py b/dist/py/models_directory/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/models_directory/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/models_directory/double_hybrid.py b/dist/py/models_directory/double_hybrid.py new file mode 100644 index 000000000..4100b2a68 --- /dev/null +++ b/dist/py/models_directory/double_hybrid.py @@ -0,0 +1,205 @@ +# generated by datamodel-codegen: +# filename: models_directory/double_hybrid.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + double_hybrid = "double-hybrid" + + +class SlugifiedEntryOrSlug59(Enum): + ksdft = "ksdft" + + +class SlugifiedEntryOrSlug60(Enum): + dft = "dft" + + +class SlugifiedEntryOrSlug61(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug62(Enum): + pb = "pb" + + +class DFTDoubleHybridFunctionalCategorySchema(BaseModel): + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug59]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug60]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug61]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug62]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class Functional(Enum): + b2plyp = "b2plyp" + + +class SpinOrbitCouplingMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None + spinOrbitCoupling: Optional[bool] = None + + +class DispersionCorrection(Enum): + dft_d2 = "dft-d2" + dft_d3 = "dft-d3" + xdm = "xdm" + ts = "ts" + + +class DispersionCorrectionMixin(BaseModel): + functional: Optional[Functional] = None + dispersionCorrection: Optional[DispersionCorrection] = None + + +class SpinPolarization(Enum): + collinear = "collinear" + non_collinear = "non-collinear" + + +class SpinPolarizationMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None + spinPolarization: Optional[SpinPolarization] = None + + +class Type(Enum): + literature = "literature" + + +class PagesSchema(BaseModel): + start: str + end: Optional[str] = None + + +class ExperimentAuthorSchema(BaseModel): + first: str + middle: Optional[str] = None + last: str + affiliation: Optional[str] = None + + +class LiteratureReferenceSchema(BaseModel): + type: Optional[Type] = None + doi: Optional[str] = None + """ + Digital Object Identifier of the reference. + """ + isbn: Optional[str] = None + """ + International Standard Book Number of the reference. + """ + issn: Optional[str] = None + """ + International Standard Serial Number of the reference. + """ + url: Optional[str] = None + """ + Internet address of the reference. + """ + title: Optional[str] = None + """ + Title of the work. + """ + publisher: Optional[str] = None + """ + Publisher of the work. + """ + journal: Optional[str] = None + """ + Journal in which the work appeared. + """ + volume: Optional[str] = None + """ + Volume of the series in which the work appeared. + """ + year: Optional[str] = None + """ + Year in which the reference was published. + """ + issue: Optional[str] = None + """ + Issue of the collection in which the work appeared. + """ + pages: Optional[PagesSchema] = Field(None, title="pages schema") + """ + Start and end pages of the work. + """ + authors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of authors of the work. + """ + editors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of editors of the work. + """ + reference: Optional[List[Dict[str, Any]]] = None + """ + References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published. + """ + + +class ModelDoubleHybridFunctional(BaseModel): + categories: DFTDoubleHybridFunctionalCategorySchema = Field( + ..., title="DFT double hybrid functional category schema" + ) + """ + Used to categorize entities such as models and methods + """ + parameters: Union[SpinOrbitCouplingMixin, DispersionCorrectionMixin, SpinPolarizationMixin] = Field( + ..., title="Double hybrid functional mixin" + ) + """ + Model parameters defined in-place or via model mixins + """ + reference: Optional[LiteratureReferenceSchema] = Field(None, title="literature reference schema") + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/models_directory/gga.py b/dist/py/models_directory/gga.py new file mode 100644 index 000000000..3fc490c34 --- /dev/null +++ b/dist/py/models_directory/gga.py @@ -0,0 +1,219 @@ +# generated by datamodel-codegen: +# filename: models_directory/gga.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + gga = "gga" + + +class SlugifiedEntryOrSlug86(Enum): + ksdft = "ksdft" + + +class SlugifiedEntryOrSlug87(Enum): + dft = "dft" + + +class SlugifiedEntryOrSlug88(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug89(Enum): + pb = "pb" + + +class DFTGGAFunctionalCategorySchema(BaseModel): + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug86]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug87]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug88]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug89]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class Functional(Enum): + pbe = "pbe" + pbesol = "pbesol" + + +class SpinOrbitCouplingMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None + spinOrbitCoupling: Optional[bool] = None + + +class DispersionCorrection(Enum): + dft_d2 = "dft-d2" + dft_d3 = "dft-d3" + xdm = "xdm" + ts = "ts" + + +class DispersionCorrectionMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None + dispersionCorrection: Optional[DispersionCorrection] = None + + +class SpinPolarization(Enum): + collinear = "collinear" + non_collinear = "non-collinear" + + +class SpinPolarizationMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None + spinPolarization: Optional[SpinPolarization] = None + + +class HubbardType(Enum): + u = "u" + + +class HubbardModelMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None + hubbardType: Optional[HubbardType] = None + + +class Type(Enum): + literature = "literature" + + +class PagesSchema(BaseModel): + start: str + end: Optional[str] = None + + +class ExperimentAuthorSchema(BaseModel): + first: str + middle: Optional[str] = None + last: str + affiliation: Optional[str] = None + + +class LiteratureReferenceSchema(BaseModel): + type: Optional[Type] = None + doi: Optional[str] = None + """ + Digital Object Identifier of the reference. + """ + isbn: Optional[str] = None + """ + International Standard Book Number of the reference. + """ + issn: Optional[str] = None + """ + International Standard Serial Number of the reference. + """ + url: Optional[str] = None + """ + Internet address of the reference. + """ + title: Optional[str] = None + """ + Title of the work. + """ + publisher: Optional[str] = None + """ + Publisher of the work. + """ + journal: Optional[str] = None + """ + Journal in which the work appeared. + """ + volume: Optional[str] = None + """ + Volume of the series in which the work appeared. + """ + year: Optional[str] = None + """ + Year in which the reference was published. + """ + issue: Optional[str] = None + """ + Issue of the collection in which the work appeared. + """ + pages: Optional[PagesSchema] = Field(None, title="pages schema") + """ + Start and end pages of the work. + """ + authors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of authors of the work. + """ + editors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of editors of the work. + """ + reference: Optional[List[Dict[str, Any]]] = None + """ + References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published. + """ + + +class ModelGeneralizedGradientApproximation(BaseModel): + categories: DFTGGAFunctionalCategorySchema = Field(..., title="DFT GGA functional category schema") + """ + Used to categorize entities such as models and methods + """ + parameters: Union[SpinOrbitCouplingMixin, DispersionCorrectionMixin, SpinPolarizationMixin, HubbardModelMixin] = ( + Field(..., title="GGA functional mixin") + ) + """ + Model parameters defined in-place or via model mixins + """ + reference: Optional[LiteratureReferenceSchema] = Field(None, title="literature reference schema") + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/models_directory/gw.py b/dist/py/models_directory/gw.py new file mode 100644 index 000000000..02b72a24a --- /dev/null +++ b/dist/py/models_directory/gw.py @@ -0,0 +1,272 @@ +# generated by datamodel-codegen: +# filename: models_directory/gw.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + gw = "gw" + + +class SlugifiedEntryOrSlug96(Enum): + g0w0 = "g0w0" + evgw0 = "evgw0" + evgw = "evgw" + + +class SlugifiedEntryOrSlug97(Enum): + abin = "abin" + + +class SlugifiedEntryOrSlug98(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug99(Enum): + pb = "pb" + + +class GWCategorySchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug96]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug97]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug98]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug99]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class SpinPolarization(Enum): + collinear = "collinear" + non_collinear = "non-collinear" + + +class Functional(Enum): + pz = "pz" + + +class LDAFunctionalMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + require: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + spinPolarization: Optional[SpinPolarization] = None + functional: Optional[Functional] = None + + +class Functional16(Enum): + pbe = "pbe" + pbesol = "pbesol" + + +class GGAFunctionalMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + require: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + spinPolarization: Optional[SpinPolarization] = None + functional: Optional[Functional16] = None + + +class Functional17(Enum): + scan = "scan" + + +class MetaGGAFunctionalMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + require: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + spinPolarization: Optional[SpinPolarization] = None + functional: Optional[Functional17] = None + + +class Functional18(Enum): + pz = "pz" + + +class LDAFunctionalMixin1(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + require: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + spinOrbitCoupling: Optional[bool] = None + functional: Optional[Functional18] = None + + +class Functional19(Enum): + pbe = "pbe" + pbesol = "pbesol" + + +class GGAFunctionalMixin2(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + require: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + spinOrbitCoupling: Optional[bool] = None + functional: Optional[Functional19] = None + + +class Functional20(Enum): + scan = "scan" + + +class MetaGGAFunctionalMixin1(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + require: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + spinOrbitCoupling: Optional[bool] = None + functional: Optional[Functional20] = None + + +class Type(Enum): + literature = "literature" + + +class PagesSchema(BaseModel): + start: str + end: Optional[str] = None + + +class ExperimentAuthorSchema(BaseModel): + first: str + middle: Optional[str] = None + last: str + affiliation: Optional[str] = None + + +class LiteratureReferenceSchema(BaseModel): + type: Optional[Type] = None + doi: Optional[str] = None + """ + Digital Object Identifier of the reference. + """ + isbn: Optional[str] = None + """ + International Standard Book Number of the reference. + """ + issn: Optional[str] = None + """ + International Standard Serial Number of the reference. + """ + url: Optional[str] = None + """ + Internet address of the reference. + """ + title: Optional[str] = None + """ + Title of the work. + """ + publisher: Optional[str] = None + """ + Publisher of the work. + """ + journal: Optional[str] = None + """ + Journal in which the work appeared. + """ + volume: Optional[str] = None + """ + Volume of the series in which the work appeared. + """ + year: Optional[str] = None + """ + Year in which the reference was published. + """ + issue: Optional[str] = None + """ + Issue of the collection in which the work appeared. + """ + pages: Optional[PagesSchema] = Field(None, title="pages schema") + """ + Start and end pages of the work. + """ + authors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of authors of the work. + """ + editors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of editors of the work. + """ + reference: Optional[List[Dict[str, Any]]] = None + """ + References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published. + """ + + +class ModelGwApproximation(BaseModel): + categories: GWCategorySchema = Field(..., title="GW category schema") + """ + Used to categorize entities such as models and methods + """ + parameters: Union[ + Union[LDAFunctionalMixin, GGAFunctionalMixin, MetaGGAFunctionalMixin], + Union[LDAFunctionalMixin1, GGAFunctionalMixin2, MetaGGAFunctionalMixin1], + ] + """ + Model parameters defined in-place or via model mixins + """ + reference: Optional[LiteratureReferenceSchema] = Field(None, title="literature reference schema") + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/models_directory/hybrid.py b/dist/py/models_directory/hybrid.py new file mode 100644 index 000000000..a7b46b54c --- /dev/null +++ b/dist/py/models_directory/hybrid.py @@ -0,0 +1,213 @@ +# generated by datamodel-codegen: +# filename: models_directory/hybrid.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + hybrid = "hybrid" + + +class SlugifiedEntryOrSlug109(Enum): + ksdft = "ksdft" + + +class SlugifiedEntryOrSlug110(Enum): + dft = "dft" + + +class SlugifiedEntryOrSlug111(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug112(Enum): + pb = "pb" + + +class DFTHybridFunctionalCategorySchema(BaseModel): + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug109]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug110]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug111]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug112]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class Functional(Enum): + hse06 = "hse06" + b3lyp = "b3lyp" + + +class SpinOrbitCouplingMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None + spinOrbitCoupling: Optional[bool] = None + + +class DispersionCorrection(Enum): + dft_d2 = "dft-d2" + dft_d3 = "dft-d3" + xdm = "xdm" + ts = "ts" + + +class DispersionCorrectionMixin(BaseModel): + functional: Optional[Functional] = None + dispersionCorrection: Optional[DispersionCorrection] = None + + +class SpinPolarization(Enum): + collinear = "collinear" + non_collinear = "non-collinear" + + +class SpinPolarizationMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None + spinPolarization: Optional[SpinPolarization] = None + + +class HubbardType(Enum): + u = "u" + + +class HubbardModelMixin(BaseModel): + functional: Optional[Functional] = None + hubbardType: Optional[HubbardType] = None + + +class Type(Enum): + literature = "literature" + + +class PagesSchema(BaseModel): + start: str + end: Optional[str] = None + + +class ExperimentAuthorSchema(BaseModel): + first: str + middle: Optional[str] = None + last: str + affiliation: Optional[str] = None + + +class LiteratureReferenceSchema(BaseModel): + type: Optional[Type] = None + doi: Optional[str] = None + """ + Digital Object Identifier of the reference. + """ + isbn: Optional[str] = None + """ + International Standard Book Number of the reference. + """ + issn: Optional[str] = None + """ + International Standard Serial Number of the reference. + """ + url: Optional[str] = None + """ + Internet address of the reference. + """ + title: Optional[str] = None + """ + Title of the work. + """ + publisher: Optional[str] = None + """ + Publisher of the work. + """ + journal: Optional[str] = None + """ + Journal in which the work appeared. + """ + volume: Optional[str] = None + """ + Volume of the series in which the work appeared. + """ + year: Optional[str] = None + """ + Year in which the reference was published. + """ + issue: Optional[str] = None + """ + Issue of the collection in which the work appeared. + """ + pages: Optional[PagesSchema] = Field(None, title="pages schema") + """ + Start and end pages of the work. + """ + authors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of authors of the work. + """ + editors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of editors of the work. + """ + reference: Optional[List[Dict[str, Any]]] = None + """ + References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published. + """ + + +class ModelHybridFunctional(BaseModel): + categories: DFTHybridFunctionalCategorySchema = Field(..., title="DFT hybrid functional category schema") + """ + Used to categorize entities such as models and methods + """ + parameters: Union[SpinOrbitCouplingMixin, DispersionCorrectionMixin, SpinPolarizationMixin, HubbardModelMixin] = ( + Field(..., title="Hybrid functional mixin") + ) + """ + Model parameters defined in-place or via model mixins + """ + reference: Optional[LiteratureReferenceSchema] = Field(None, title="literature reference schema") + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/models_directory/lda.py b/dist/py/models_directory/lda.py new file mode 100644 index 000000000..8ff3d3c4a --- /dev/null +++ b/dist/py/models_directory/lda.py @@ -0,0 +1,218 @@ +# generated by datamodel-codegen: +# filename: models_directory/lda.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + lda = "lda" + + +class SlugifiedEntryOrSlug129(Enum): + ksdft = "ksdft" + + +class SlugifiedEntryOrSlug130(Enum): + dft = "dft" + + +class SlugifiedEntryOrSlug131(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug132(Enum): + pb = "pb" + + +class DFTLDAFunctionalCategorySchema(BaseModel): + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug129]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug130]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug131]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug132]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class Functional(Enum): + pz = "pz" + + +class SpinOrbitCouplingMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None + spinOrbitCoupling: Optional[bool] = None + + +class DispersionCorrection(Enum): + dft_d2 = "dft-d2" + dft_d3 = "dft-d3" + xdm = "xdm" + ts = "ts" + + +class DispersionCorrectionMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None + dispersionCorrection: Optional[DispersionCorrection] = None + + +class SpinPolarization(Enum): + collinear = "collinear" + non_collinear = "non-collinear" + + +class SpinPolarizationMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None + spinPolarization: Optional[SpinPolarization] = None + + +class HubbardType(Enum): + u = "u" + + +class HubbardModelMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None + hubbardType: Optional[HubbardType] = None + + +class Type(Enum): + literature = "literature" + + +class PagesSchema(BaseModel): + start: str + end: Optional[str] = None + + +class ExperimentAuthorSchema(BaseModel): + first: str + middle: Optional[str] = None + last: str + affiliation: Optional[str] = None + + +class LiteratureReferenceSchema(BaseModel): + type: Optional[Type] = None + doi: Optional[str] = None + """ + Digital Object Identifier of the reference. + """ + isbn: Optional[str] = None + """ + International Standard Book Number of the reference. + """ + issn: Optional[str] = None + """ + International Standard Serial Number of the reference. + """ + url: Optional[str] = None + """ + Internet address of the reference. + """ + title: Optional[str] = None + """ + Title of the work. + """ + publisher: Optional[str] = None + """ + Publisher of the work. + """ + journal: Optional[str] = None + """ + Journal in which the work appeared. + """ + volume: Optional[str] = None + """ + Volume of the series in which the work appeared. + """ + year: Optional[str] = None + """ + Year in which the reference was published. + """ + issue: Optional[str] = None + """ + Issue of the collection in which the work appeared. + """ + pages: Optional[PagesSchema] = Field(None, title="pages schema") + """ + Start and end pages of the work. + """ + authors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of authors of the work. + """ + editors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of editors of the work. + """ + reference: Optional[List[Dict[str, Any]]] = None + """ + References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published. + """ + + +class ModelLocalDensityApproximation(BaseModel): + categories: DFTLDAFunctionalCategorySchema = Field(..., title="DFT LDA functional category schema") + """ + Used to categorize entities such as models and methods + """ + parameters: Union[SpinOrbitCouplingMixin, DispersionCorrectionMixin, SpinPolarizationMixin, HubbardModelMixin] = ( + Field(..., title="LDA functional mixin") + ) + """ + Model parameters defined in-place or via model mixins + """ + reference: Optional[LiteratureReferenceSchema] = Field(None, title="literature reference schema") + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/models_directory/legacy/__init__.py b/dist/py/models_directory/legacy/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/models_directory/legacy/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/models_directory/legacy/dft.py b/dist/py/models_directory/legacy/dft.py new file mode 100644 index 000000000..f5be40f90 --- /dev/null +++ b/dist/py/models_directory/legacy/dft.py @@ -0,0 +1,142 @@ +# generated by datamodel-codegen: +# filename: models_directory/legacy/dft.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, Literal, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, RootModel + + +class BaseMethod(BaseModel): + type: str + """ + general type of this method, eg. `pseudopotential` + """ + subtype: str + """ + general subtype of this method, eg. `ultra-soft` + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + data: Optional[Dict[str, Any]] = None + """ + additional data specific to method, eg. array of pseudopotentials + """ + + +class Functional(Enum): + pz = "pz" + pw = "pw" + vwn = "vwn" + other = "other" + + +class LegacyModelDensityFunctionalTheory(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + type: Literal["dft"] + """ + general type of the model, eg. `dft` + """ + subtype: Literal["lda"] + """ + general subtype of the model, eg. `lda` + """ + method: BaseMethod = Field(..., title="base method") + functional: Optional[Functional] = None + + +class Functional1(Enum): + pbe = "pbe" + pbesol = "pbesol" + pw91 = "pw91" + other = "other" + + +class LegacyModelDensityFunctionalTheory1(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + type: Literal["dft"] + """ + general type of the model, eg. `dft` + """ + subtype: Literal["gga"] + """ + general subtype of the model, eg. `lda` + """ + method: BaseMethod = Field(..., title="base method") + functional: Optional[Functional1] = None + + +class Functional2(Enum): + b3lyp = "b3lyp" + hse06 = "hse06" + + +class LegacyModelDensityFunctionalTheory2(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + type: Literal["dft"] + """ + general type of the model, eg. `dft` + """ + subtype: Literal["hybrid"] + """ + general subtype of the model, eg. `lda` + """ + method: BaseMethod = Field(..., title="base method") + functional: Optional[Functional2] = None + + +class ESSE( + RootModel[ + Union[ + LegacyModelDensityFunctionalTheory, LegacyModelDensityFunctionalTheory1, LegacyModelDensityFunctionalTheory2 + ] + ] +): + root: Union[ + LegacyModelDensityFunctionalTheory, LegacyModelDensityFunctionalTheory1, LegacyModelDensityFunctionalTheory2 + ] = Field(..., title="legacy model density functional theory") + + +class Functional3(Enum): + pz = "pz" + pw = "pw" + vwn = "vwn" + other = "other" + + +class Lda(BaseModel): + subtype: Literal["lda"] = "lda" + functional: Optional[Functional3] = None + + +class Functional4(Enum): + pbe = "pbe" + pbesol = "pbesol" + pw91 = "pw91" + other = "other" + + +class Gga(BaseModel): + subtype: Literal["gga"] = "gga" + functional: Optional[Functional4] = None + + +class Functional5(Enum): + b3lyp = "b3lyp" + hse06 = "hse06" + + +class Hybrid(BaseModel): + subtype: Literal["hybrid"] = "hybrid" + functional: Optional[Functional5] = None diff --git a/dist/py/models_directory/legacy/ml.py b/dist/py/models_directory/legacy/ml.py new file mode 100644 index 000000000..98d083a89 --- /dev/null +++ b/dist/py/models_directory/legacy/ml.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: models_directory/legacy/ml.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, Optional + +from pydantic import BaseModel, ConfigDict, Field + + +class Type(Enum): + ml = "ml" + + +class Subtype(Enum): + re = "re" + + +class BaseMethod(BaseModel): + type: str + """ + general type of this method, eg. `pseudopotential` + """ + subtype: str + """ + general subtype of this method, eg. `ultra-soft` + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + data: Optional[Dict[str, Any]] = None + """ + additional data specific to method, eg. array of pseudopotentials + """ + + +class LegacyModelRegression(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + type: Type + """ + general type of the model, eg. `dft` + """ + subtype: Subtype + """ + general subtype of the model, eg. `lda` + """ + method: BaseMethod = Field(..., title="base method") diff --git a/dist/py/models_directory/legacy/unknown.py b/dist/py/models_directory/legacy/unknown.py new file mode 100644 index 000000000..b590e09f7 --- /dev/null +++ b/dist/py/models_directory/legacy/unknown.py @@ -0,0 +1,52 @@ +# generated by datamodel-codegen: +# filename: models_directory/legacy/unknown.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, Optional + +from pydantic import BaseModel, ConfigDict, Field + + +class Type(Enum): + unknown = "unknown" + + +class Subtype(Enum): + unknown = "unknown" + + +class BaseMethod(BaseModel): + type: str + """ + general type of this method, eg. `pseudopotential` + """ + subtype: str + """ + general subtype of this method, eg. `ultra-soft` + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + data: Optional[Dict[str, Any]] = None + """ + additional data specific to method, eg. array of pseudopotentials + """ + + +class LegacyModelUnknown(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + type: Type + """ + general type of the model, eg. `dft` + """ + subtype: Subtype + """ + general subtype of the model, eg. `lda` + """ + method: BaseMethod = Field(..., title="base method") diff --git a/dist/py/models_directory/mgga.py b/dist/py/models_directory/mgga.py new file mode 100644 index 000000000..5f66db265 --- /dev/null +++ b/dist/py/models_directory/mgga.py @@ -0,0 +1,218 @@ +# generated by datamodel-codegen: +# filename: models_directory/mgga.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + mgga = "mgga" + + +class SlugifiedEntryOrSlug152(Enum): + ksdft = "ksdft" + + +class SlugifiedEntryOrSlug153(Enum): + dft = "dft" + + +class SlugifiedEntryOrSlug154(Enum): + qm = "qm" + + +class SlugifiedEntryOrSlug155(Enum): + pb = "pb" + + +class DFTMetaGGAFunctionalCategorySchema(BaseModel): + subtype: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug152]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug153]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug154]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug155]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class Functional(Enum): + scan = "scan" + + +class SpinOrbitCouplingMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None + spinOrbitCoupling: Optional[bool] = None + + +class DispersionCorrection(Enum): + dft_d2 = "dft-d2" + dft_d3 = "dft-d3" + xdm = "xdm" + ts = "ts" + + +class DispersionCorrectionMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None + dispersionCorrection: Optional[DispersionCorrection] = None + + +class SpinPolarization(Enum): + collinear = "collinear" + non_collinear = "non-collinear" + + +class SpinPolarizationMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None + spinPolarization: Optional[SpinPolarization] = None + + +class HubbardType(Enum): + u = "u" + + +class HubbardModelMixin(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + functional: Optional[Functional] = None + hubbardType: Optional[HubbardType] = None + + +class Type(Enum): + literature = "literature" + + +class PagesSchema(BaseModel): + start: str + end: Optional[str] = None + + +class ExperimentAuthorSchema(BaseModel): + first: str + middle: Optional[str] = None + last: str + affiliation: Optional[str] = None + + +class LiteratureReferenceSchema(BaseModel): + type: Optional[Type] = None + doi: Optional[str] = None + """ + Digital Object Identifier of the reference. + """ + isbn: Optional[str] = None + """ + International Standard Book Number of the reference. + """ + issn: Optional[str] = None + """ + International Standard Serial Number of the reference. + """ + url: Optional[str] = None + """ + Internet address of the reference. + """ + title: Optional[str] = None + """ + Title of the work. + """ + publisher: Optional[str] = None + """ + Publisher of the work. + """ + journal: Optional[str] = None + """ + Journal in which the work appeared. + """ + volume: Optional[str] = None + """ + Volume of the series in which the work appeared. + """ + year: Optional[str] = None + """ + Year in which the reference was published. + """ + issue: Optional[str] = None + """ + Issue of the collection in which the work appeared. + """ + pages: Optional[PagesSchema] = Field(None, title="pages schema") + """ + Start and end pages of the work. + """ + authors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of authors of the work. + """ + editors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of editors of the work. + """ + reference: Optional[List[Dict[str, Any]]] = None + """ + References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published. + """ + + +class ModelMetaGeneralizedGradientApproximation(BaseModel): + categories: DFTMetaGGAFunctionalCategorySchema = Field(..., title="DFT meta-GGA functional category schema") + """ + Used to categorize entities such as models and methods + """ + parameters: Union[SpinOrbitCouplingMixin, DispersionCorrectionMixin, SpinPolarizationMixin, HubbardModelMixin] = ( + Field(..., title="Meta-GGA functional mixin") + ) + """ + Model parameters defined in-place or via model mixins + """ + reference: Optional[LiteratureReferenceSchema] = Field(None, title="literature reference schema") + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/models_directory/re.py b/dist/py/models_directory/re.py new file mode 100644 index 000000000..06a342232 --- /dev/null +++ b/dist/py/models_directory/re.py @@ -0,0 +1,160 @@ +# generated by datamodel-codegen: +# filename: models_directory/re.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field + + +class SlugifiedEntry(BaseModel): + name: str + """ + descriptive human-readable name of entry + """ + slug: str + """ + machine-readable identifier + """ + + +class SlugifiedEntryOrSlug(Enum): + re = "re" + + +class SlugifiedEntryOrSlug230(Enum): + ml = "ml" + + +class SlugifiedEntryOrSlug231(Enum): + det = "det" + + +class SlugifiedEntryOrSlug232(Enum): + st = "st" + + +class RegressionModelCategorySchema(BaseModel): + type: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier3: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug230]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier2: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug231]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + tier1: Optional[Union[SlugifiedEntry, SlugifiedEntryOrSlug232]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + subtype: Optional[Union[SlugifiedEntry, str]] = Field(None, title="slugified entry or slug") + """ + contains either object with slugified entry or slug only as a string + """ + + +class Type(Enum): + literature = "literature" + + +class PagesSchema(BaseModel): + start: str + end: Optional[str] = None + + +class ExperimentAuthorSchema(BaseModel): + first: str + middle: Optional[str] = None + last: str + affiliation: Optional[str] = None + + +class LiteratureReferenceSchema(BaseModel): + type: Optional[Type] = None + doi: Optional[str] = None + """ + Digital Object Identifier of the reference. + """ + isbn: Optional[str] = None + """ + International Standard Book Number of the reference. + """ + issn: Optional[str] = None + """ + International Standard Serial Number of the reference. + """ + url: Optional[str] = None + """ + Internet address of the reference. + """ + title: Optional[str] = None + """ + Title of the work. + """ + publisher: Optional[str] = None + """ + Publisher of the work. + """ + journal: Optional[str] = None + """ + Journal in which the work appeared. + """ + volume: Optional[str] = None + """ + Volume of the series in which the work appeared. + """ + year: Optional[str] = None + """ + Year in which the reference was published. + """ + issue: Optional[str] = None + """ + Issue of the collection in which the work appeared. + """ + pages: Optional[PagesSchema] = Field(None, title="pages schema") + """ + Start and end pages of the work. + """ + authors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of authors of the work. + """ + editors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of editors of the work. + """ + reference: Optional[List[Dict[str, Any]]] = None + """ + References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published. + """ + + +class ModelRegression(BaseModel): + categories: RegressionModelCategorySchema = Field(..., title="regression model category schema") + """ + Used to categorize entities such as models and methods + """ + parameters: Dict[str, Any] + """ + Model parameters defined in-place or via model mixins + """ + reference: Optional[LiteratureReferenceSchema] = Field(None, title="literature reference schema") + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/project.py b/dist/py/project.py new file mode 100644 index 000000000..8fd11abc5 --- /dev/null +++ b/dist/py/project.py @@ -0,0 +1,49 @@ +# generated by datamodel-codegen: +# filename: project.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel, Field + + +class ClusterBasedChargeRate(BaseModel): + rate: Optional[float] = None + timestamp: Optional[float] = None + hostname: Optional[str] = None + + +class ProjectSchema(BaseModel): + gid: Optional[float] = None + """ + project GID + """ + clusterBasedChargeRates: Optional[List[ClusterBasedChargeRate]] = None + """ + charge rates info for project + """ + isExternal: Optional[bool] = False + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + metadata: Optional[Dict[str, Any]] = None diff --git a/dist/py/properties_directory/__init__.py b/dist/py/properties_directory/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/properties_directory/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/properties_directory/derived_properties.py b/dist/py/properties_directory/derived_properties.py new file mode 100644 index 000000000..5d6975346 --- /dev/null +++ b/dist/py/properties_directory/derived_properties.py @@ -0,0 +1,139 @@ +# generated by datamodel-codegen: +# filename: properties_directory/derived_properties.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel, confloat + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units] = None + value: float + + +class Name454(Enum): + density = "density" + + +class Units178(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units178] = None + value: float + + +class Units179(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units179] = None + value: float + + +class Name455(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + + +class Name456(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ + + +class Name457(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float + + +class Name458(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class Name459(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + value: str + + +class DerivedPropertiesSchema( + RootModel[ + Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] + ] +): + root: Union[ + VolumeSchema, + DensitySchema, + SymmetrySchema, + ElementalRatio, + PNorm, + InChIRepresentationSchema, + InChIKeyRepresentationSchema, + ] = Field(..., discriminator="name") + + +class DerivedPropertiesSchema55(RootModel[List[DerivedPropertiesSchema]]): + root: List[DerivedPropertiesSchema] = Field(..., title="derived properties schema") diff --git a/dist/py/properties_directory/electronic_configuration.py b/dist/py/properties_directory/electronic_configuration.py new file mode 100644 index 000000000..62be2f436 --- /dev/null +++ b/dist/py/properties_directory/electronic_configuration.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: properties_directory/electronic_configuration.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class ElectronicConfigurationSchema(BaseModel): + charge: Optional[int] = None + """ + total charge of the molecular system + """ + multiplicity: Optional[int] = None + """ + calculated as 2S+1, with S is the total spin angular momentum + """ diff --git a/dist/py/properties_directory/elemental/__init__.py b/dist/py/properties_directory/elemental/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/properties_directory/elemental/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/properties_directory/elemental/atomic_radius.py b/dist/py/properties_directory/elemental/atomic_radius.py new file mode 100644 index 000000000..e653a77c3 --- /dev/null +++ b/dist/py/properties_directory/elemental/atomic_radius.py @@ -0,0 +1,33 @@ +# generated by datamodel-codegen: +# filename: properties_directory/elemental/atomic_radius.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel + + +class Name(Enum): + atomic_radius = "atomic_radius" + + +class Units(Enum): + km = "km" + m = "m" + cm = "cm" + mm = "mm" + um = "um" + nm = "nm" + angstrom = "angstrom" + a_u_ = "a.u." + bohr = "bohr" + pm = "pm" + + +class AtomicRadius(BaseModel): + name: Name + units: Optional[Units] = None + value: float diff --git a/dist/py/properties_directory/elemental/electronegativity.py b/dist/py/properties_directory/elemental/electronegativity.py new file mode 100644 index 000000000..0f506e238 --- /dev/null +++ b/dist/py/properties_directory/elemental/electronegativity.py @@ -0,0 +1,18 @@ +# generated by datamodel-codegen: +# filename: properties_directory/elemental/electronegativity.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class Name(Enum): + electronegativity = "electronegativity" + + +class Electronegativity(BaseModel): + name: Name + value: float diff --git a/dist/py/properties_directory/elemental/ionization_potential.py b/dist/py/properties_directory/elemental/ionization_potential.py new file mode 100644 index 000000000..527fe6672 --- /dev/null +++ b/dist/py/properties_directory/elemental/ionization_potential.py @@ -0,0 +1,29 @@ +# generated by datamodel-codegen: +# filename: properties_directory/elemental/ionization_potential.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class Name(Enum): + ionization_potential = "ionization_potential" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class IonizationPotentialElementalPropertySchema(BaseModel): + name: Name + units: Units + value: float diff --git a/dist/py/properties_directory/jupyter_notebook_endpoint.py b/dist/py/properties_directory/jupyter_notebook_endpoint.py new file mode 100644 index 000000000..3e72ae227 --- /dev/null +++ b/dist/py/properties_directory/jupyter_notebook_endpoint.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: properties_directory/jupyter_notebook_endpoint.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class Name(Enum): + jupyter_notebook_endpoint = "jupyter_notebook_endpoint" + + +class JupyterNotebookEndpointPropertySchema(BaseModel): + name: Name + host: str + port: float + token: str diff --git a/dist/py/properties_directory/non_scalar/__init__.py b/dist/py/properties_directory/non_scalar/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/properties_directory/non_scalar/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/properties_directory/non_scalar/average_potential_profile.py b/dist/py/properties_directory/non_scalar/average_potential_profile.py new file mode 100644 index 000000000..91f6e6ab9 --- /dev/null +++ b/dist/py/properties_directory/non_scalar/average_potential_profile.py @@ -0,0 +1,78 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/average_potential_profile.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, Field + + +class Label(Enum): + z_coordinate = "z coordinate" + + +class Units(Enum): + km = "km" + m = "m" + cm = "cm" + mm = "mm" + um = "um" + nm = "nm" + angstrom = "angstrom" + a_u_ = "a.u." + bohr = "bohr" + pm = "pm" + + +class AxisSchema(BaseModel): + label: Label + """ + label of an axis object + """ + units: Optional[Units] = None + """ + units for an axis + """ + + +class Label1(Enum): + energy = "energy" + + +class Units12(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class AxisSchema3(BaseModel): + label: Label1 + """ + label of an axis object + """ + units: Optional[Units12] = None + """ + units for an axis + """ + + +class Name(Enum): + average_potential_profile = "average_potential_profile" + + +class AveragePotentialProfilePropertySchema(BaseModel): + xAxis: AxisSchema = Field(..., title="axis schema") + yAxis: AxisSchema3 = Field(..., title="axis schema") + name: Name + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") diff --git a/dist/py/properties_directory/non_scalar/band_gaps.py b/dist/py/properties_directory/non_scalar/band_gaps.py new file mode 100644 index 000000000..0237e547a --- /dev/null +++ b/dist/py/properties_directory/non_scalar/band_gaps.py @@ -0,0 +1,73 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/band_gaps.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class Name(Enum): + band_gaps = "band_gaps" + + +class Type(Enum): + direct = "direct" + indirect = "indirect" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class BandGapSchema(BaseModel): + kpointConduction: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema") + """ + A k-point is a point in reciprocal space of a crystal. + """ + kpointValence: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema") + """ + A k-point is a point in reciprocal space of a crystal. + """ + eigenvalueConduction: Optional[float] = None + """ + eigenvalue at k-point in conduction band + """ + eigenvalueValence: Optional[float] = None + """ + eigenvalue at k-point in valence band + """ + spin: Optional[float] = None + type: Type + units: Optional[Units] = None + value: float + + +class Eigenvalue1(BaseModel): + spin: Optional[float] = None + energies: Optional[List] = None + occupations: Optional[List] = None + + +class Eigenvalue(BaseModel): + kpoint: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema") + """ + A k-point is a point in reciprocal space of a crystal. + """ + weight: Optional[float] = None + eigenvalues: Optional[List[Eigenvalue1]] = None + + +class BandGapsPropertySchema(BaseModel): + name: Name + values: List[BandGapSchema] + eigenvalues: Optional[List[Eigenvalue]] = None diff --git a/dist/py/properties_directory/non_scalar/band_structure.py b/dist/py/properties_directory/non_scalar/band_structure.py new file mode 100644 index 000000000..e3dbb303d --- /dev/null +++ b/dist/py/properties_directory/non_scalar/band_structure.py @@ -0,0 +1,79 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/band_structure.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, Field + + +class Label(Enum): + kpoints = "kpoints" + + +class Units(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AxisSchema(BaseModel): + label: Label + """ + label of an axis object + """ + units: Optional[Units] = "crystal" + """ + units for an axis + """ + + +class Label3(Enum): + energy = "energy" + + +class Units16(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class AxisSchema6(BaseModel): + label: Label3 + """ + label of an axis object + """ + units: Optional[Units16] = None + """ + units for an axis + """ + + +class Name(Enum): + band_structure = "band_structure" + + +class SpinEnum(Enum): + number_0_5 = 0.5 + number__0_5 = -0.5 + + +class BandStructurePropertySchema(BaseModel): + xAxis: AxisSchema = Field(..., title="axis schema") + yAxis: AxisSchema6 = Field(..., title="axis schema") + name: Name + spin: List[SpinEnum] + """ + spin of each band + """ + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") diff --git a/dist/py/properties_directory/non_scalar/charge_density_profile.py b/dist/py/properties_directory/non_scalar/charge_density_profile.py new file mode 100644 index 000000000..923f3ff99 --- /dev/null +++ b/dist/py/properties_directory/non_scalar/charge_density_profile.py @@ -0,0 +1,59 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/charge_density_profile.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, Field + + +class Label(Enum): + z_coordinate = "z coordinate" + + +class AxisSchema(BaseModel): + label: Label + """ + label of an axis object + """ + units: Optional[str] = None + """ + units for an axis + """ + + +class Label5(Enum): + charge_density = "charge density" + + +class Units(Enum): + e_A = "e/A" + + +class AxisSchema8(BaseModel): + label: Label5 + """ + label of an axis object + """ + units: Optional[Units] = None + """ + units for an axis + """ + + +class Name(Enum): + charge_density_profile = "charge_density_profile" + + +class ChargeDensityProfilePropertySchema(BaseModel): + xAxis: AxisSchema = Field(..., title="axis schema") + yAxis: AxisSchema8 = Field(..., title="axis schema") + name: Name + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") diff --git a/dist/py/properties_directory/non_scalar/density_of_states.py b/dist/py/properties_directory/non_scalar/density_of_states.py new file mode 100644 index 000000000..abfebcd14 --- /dev/null +++ b/dist/py/properties_directory/non_scalar/density_of_states.py @@ -0,0 +1,94 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/density_of_states.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, Field, constr + + +class Label(Enum): + energy = "energy" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class AxisSchema(BaseModel): + label: Label + """ + label of an axis object + """ + units: Optional[Units] = None + """ + units for an axis + """ + + +class Label7(Enum): + density_of_states = "density of states" + + +class Units176(Enum): + states_unitcell = "states/unitcell" + + +class AxisSchema10(BaseModel): + label: Label7 + """ + label of an axis object + """ + units: Optional[Units176] = None + """ + units for an axis + """ + + +class Name(Enum): + density_of_states = "density_of_states" + + +class Spin(Enum): + number_0_5 = 0.5 + number__0_5 = -0.5 + + +class LegendItem(BaseModel): + element: Optional[str] = None + """ + chemical element + """ + index: Optional[int] = None + """ + index inside sub-array of atoms of the same element type + """ + electronicState: Optional[constr(pattern=r"^([1-5]{1})?(s|p|d|f|g).*$")] = None + """ + electronic character and shell of PDOS, such as `1s` or `s`, or `total` + """ + spin: Optional[Spin] = None + """ + spin of the electronic state + """ + + +class DensityOfStatesPropertySchema(BaseModel): + xAxis: AxisSchema = Field(..., title="axis schema") + yAxis: AxisSchema10 = Field(..., title="axis schema") + name: Name + legend: List[LegendItem] + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") diff --git a/dist/py/properties_directory/non_scalar/dielectric_tensor.py b/dist/py/properties_directory/non_scalar/dielectric_tensor.py new file mode 100644 index 000000000..0a0aabea6 --- /dev/null +++ b/dist/py/properties_directory/non_scalar/dielectric_tensor.py @@ -0,0 +1,40 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/dielectric_tensor.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel + + +class Name(Enum): + dielectric_tensor = "dielectric_tensor" + + +class Part(Enum): + real = "real" + imaginary = "imaginary" + + +class DielectricTensor(BaseModel): + part: Part + """ + Real or imaginary part of the dielectric tensor component + """ + spin: Optional[float] = None + frequencies: List[float] + """ + Frequencies + """ + components: List[List[float]] + """ + Matrix with 3 columns, e.g. x, y, z + """ + + +class DielectricTensorPropertySchema(BaseModel): + name: Name + values: List[DielectricTensor] diff --git a/dist/py/properties_directory/non_scalar/file_content.py b/dist/py/properties_directory/non_scalar/file_content.py new file mode 100644 index 000000000..328d6582a --- /dev/null +++ b/dist/py/properties_directory/non_scalar/file_content.py @@ -0,0 +1,64 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/file_content.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field + + +class Name(Enum): + file_content = "file_content" + + +class Filetype(Enum): + image = "image" + text = "text" + csv = "csv" + + +class ObjectStorageContainerData(BaseModel): + CONTAINER: Optional[str] = None + """ + Object storage container for the file + """ + NAME: Optional[str] = None + """ + Name of the file inside the object storage bucket + """ + PROVIDER: Optional[str] = None + """ + Object storage provider + """ + REGION: Optional[str] = None + """ + Region for the object container specified in Container + """ + SIZE: Optional[int] = None + """ + Size of the file in bytes + """ + TIMESTAMP: Optional[str] = None + """ + Unix timestamp showing when the file was last modified + """ + + +class FileContentPropertySchema(BaseModel): + name: Name + filetype: Filetype + """ + What kind of file this is, e.g. image / text + """ + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ diff --git a/dist/py/properties_directory/non_scalar/final_structure.py b/dist/py/properties_directory/non_scalar/final_structure.py new file mode 100644 index 000000000..8f5693ac7 --- /dev/null +++ b/dist/py/properties_directory/non_scalar/final_structure.py @@ -0,0 +1,22 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/final_structure.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class Name(Enum): + final_structure = "final_structure" + + +class FinalStructurePropertySchema(BaseModel): + name: Name + isRelaxed: bool + materialId: str + """ + Material's identity + """ diff --git a/dist/py/properties_directory/non_scalar/hubbard_u.py b/dist/py/properties_directory/non_scalar/hubbard_u.py new file mode 100644 index 000000000..c89119bba --- /dev/null +++ b/dist/py/properties_directory/non_scalar/hubbard_u.py @@ -0,0 +1,40 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/hubbard_u.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List + +from pydantic import BaseModel, constr + + +class Name(Enum): + hubbard_u = "hubbard_u" + + +class Units(Enum): + eV = "eV" + + +class AtomicDataPerOrbitalNumeric(BaseModel): + id: int + """ + Site number or index in the lattice + """ + atomicSpecies: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$") + """ + Example: Co1, Mn + """ + orbitalName: constr(pattern=r"^[1-7][sSpPdDfF]$") + value: float + """ + Value related to a specific property, e.g., Hubbard U, V etc. + """ + + +class HubbardUParametersPropertySchema(BaseModel): + name: Name + units: Units + values: List[AtomicDataPerOrbitalNumeric] diff --git a/dist/py/properties_directory/non_scalar/hubbard_v.py b/dist/py/properties_directory/non_scalar/hubbard_v.py new file mode 100644 index 000000000..9a395bbd4 --- /dev/null +++ b/dist/py/properties_directory/non_scalar/hubbard_v.py @@ -0,0 +1,53 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/hubbard_v.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, constr + + +class Name(Enum): + hubbard_v = "hubbard_v" + + +class Units(Enum): + eV = "eV" + + +class AtomicDataPerOrbitalPairNumeric(BaseModel): + id: int + """ + Site number or index in the lattice + """ + id2: int + """ + Site number or index in the lattice of second site + """ + atomicSpecies: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$") + """ + Example: Co1, Mn + """ + atomicSpecies2: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$") + """ + Example: Co2, O + """ + orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + orbitalName2: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + distance: Optional[float] = None + """ + Distance between two sites in Bohr. + """ + value: float + """ + Value related to a specific property, e.g., Hubbard U, V etc. + """ + + +class HubbardVParametersPropertySchema(BaseModel): + name: Name + units: Units + values: List[AtomicDataPerOrbitalPairNumeric] diff --git a/dist/py/properties_directory/non_scalar/hubbard_v_nn.py b/dist/py/properties_directory/non_scalar/hubbard_v_nn.py new file mode 100644 index 000000000..1fec5c921 --- /dev/null +++ b/dist/py/properties_directory/non_scalar/hubbard_v_nn.py @@ -0,0 +1,53 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/hubbard_v_nn.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, constr + + +class Name(Enum): + hubbard_v_nn = "hubbard_v_nn" + + +class Units(Enum): + eV = "eV" + + +class AtomicDataPerOrbitalPairNumeric(BaseModel): + id: int + """ + Site number or index in the lattice + """ + id2: int + """ + Site number or index in the lattice of second site + """ + atomicSpecies: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$") + """ + Example: Co1, Mn + """ + atomicSpecies2: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$") + """ + Example: Co2, O + """ + orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + orbitalName2: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + distance: Optional[float] = None + """ + Distance between two sites in Bohr. + """ + value: float + """ + Value related to a specific property, e.g., Hubbard U, V etc. + """ + + +class HubbardVNNParametersPropertySchema(BaseModel): + name: Name + units: Units + values: List[AtomicDataPerOrbitalPairNumeric] diff --git a/dist/py/properties_directory/non_scalar/is_relaxed.py b/dist/py/properties_directory/non_scalar/is_relaxed.py new file mode 100644 index 000000000..2df3924d7 --- /dev/null +++ b/dist/py/properties_directory/non_scalar/is_relaxed.py @@ -0,0 +1,22 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/is_relaxed.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class Name(Enum): + is_relaxed = "is_relaxed" + + +class IsRelaxedPropertySchema(BaseModel): + name: Name + value: bool + materialId: str + """ + Material's identity + """ diff --git a/dist/py/properties_directory/non_scalar/phonon_dispersions.py b/dist/py/properties_directory/non_scalar/phonon_dispersions.py new file mode 100644 index 000000000..f4385654c --- /dev/null +++ b/dist/py/properties_directory/non_scalar/phonon_dispersions.py @@ -0,0 +1,66 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/phonon_dispersions.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, Field + + +class Label(Enum): + qpoints = "qpoints" + + +class Units(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AxisSchema(BaseModel): + label: Label + """ + label of an axis object + """ + units: Optional[Units] = "crystal" + """ + units for an axis + """ + + +class Label25(Enum): + frequency = "frequency" + + +class Units272(Enum): + cm_1 = "cm-1" + THz = "THz" + meV = "meV" + + +class AxisSchema28(BaseModel): + label: Label25 + """ + label of an axis object + """ + units: Optional[Units272] = None + """ + units for an axis + """ + + +class Name(Enum): + phonon_dispersions = "phonon_dispersions" + + +class PhononBandStructurePropertySchema(BaseModel): + xAxis: AxisSchema = Field(..., title="axis schema") + yAxis: AxisSchema28 = Field(..., title="axis schema") + name: Name + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") diff --git a/dist/py/properties_directory/non_scalar/phonon_dos.py b/dist/py/properties_directory/non_scalar/phonon_dos.py new file mode 100644 index 000000000..ce8d7d067 --- /dev/null +++ b/dist/py/properties_directory/non_scalar/phonon_dos.py @@ -0,0 +1,67 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/phonon_dos.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, Field + + +class Label(Enum): + frequency = "frequency" + + +class Units(Enum): + cm_1 = "cm-1" + THz = "THz" + meV = "meV" + + +class AxisSchema(BaseModel): + label: Label + """ + label of an axis object + """ + units: Optional[Units] = None + """ + units for an axis + """ + + +class Label27(Enum): + Phonon_DOS = "Phonon DOS" + + +class Units274(Enum): + states_cm_1 = "states/cm-1" + states_THz = "states/THz" + states_meV = "states/meV" + + +class AxisSchema30(BaseModel): + label: Label27 + """ + label of an axis object + """ + units: Optional[Units274] = None + """ + units for an axis + """ + + +class Name(Enum): + phonon_dos = "phonon_dos" + + +class PhononDensityOfStatesPropertySchema(BaseModel): + xAxis: AxisSchema = Field(..., title="axis schema") + yAxis: AxisSchema30 = Field(..., title="axis schema") + name: Name + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") diff --git a/dist/py/properties_directory/non_scalar/potential_profile.py b/dist/py/properties_directory/non_scalar/potential_profile.py new file mode 100644 index 000000000..3b7314a02 --- /dev/null +++ b/dist/py/properties_directory/non_scalar/potential_profile.py @@ -0,0 +1,65 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/potential_profile.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, Field + + +class Label(Enum): + z_coordinate = "z coordinate" + + +class AxisSchema(BaseModel): + label: Label + """ + label of an axis object + """ + units: Optional[str] = None + """ + units for an axis + """ + + +class Label29(Enum): + energy = "energy" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class AxisSchema32(BaseModel): + label: Label29 + """ + label of an axis object + """ + units: Optional[Units] = None + """ + units for an axis + """ + + +class Name(Enum): + potential_profile = "potential_profile" + + +class PotentialProfilePropertySchema(BaseModel): + xAxis: AxisSchema = Field(..., title="axis schema") + yAxis: AxisSchema32 = Field(..., title="axis schema") + name: Name + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") diff --git a/dist/py/properties_directory/non_scalar/reaction_energy_profile.py b/dist/py/properties_directory/non_scalar/reaction_energy_profile.py new file mode 100644 index 000000000..d6e592883 --- /dev/null +++ b/dist/py/properties_directory/non_scalar/reaction_energy_profile.py @@ -0,0 +1,65 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/reaction_energy_profile.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, Field + + +class Label(Enum): + reaction_coordinate = "reaction coordinate" + + +class AxisSchema(BaseModel): + label: Label + """ + label of an axis object + """ + units: Optional[str] = None + """ + units for an axis + """ + + +class Label31(Enum): + energy = "energy" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class AxisSchema34(BaseModel): + label: Label31 + """ + label of an axis object + """ + units: Optional[Units] = None + """ + units for an axis + """ + + +class Name(Enum): + reaction_energy_profile = "reaction_energy_profile" + + +class ReactionEnergyProfilePropertySchema(BaseModel): + xAxis: AxisSchema = Field(..., title="axis schema") + yAxis: AxisSchema34 = Field(..., title="axis schema") + name: Name + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") diff --git a/dist/py/properties_directory/non_scalar/stress_tensor.py b/dist/py/properties_directory/non_scalar/stress_tensor.py new file mode 100644 index 000000000..8a9b38576 --- /dev/null +++ b/dist/py/properties_directory/non_scalar/stress_tensor.py @@ -0,0 +1,29 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/stress_tensor.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List + +from pydantic import BaseModel, Field, RootModel + + +class ArrayOf3NumberElementsSchema(RootModel[List[float]]): + root: List[float] = Field(..., title="array of 3 number elements schema") + + +class Name(Enum): + stress_tensor = "stress_tensor" + + +class Units(Enum): + kbar = "kbar" + pa = "pa" + + +class StressTensorPropertySchema(BaseModel): + value: List[ArrayOf3NumberElementsSchema] = Field(..., max_length=3, min_length=3, title="matrix 3x3 schema") + name: Name + units: Units diff --git a/dist/py/properties_directory/non_scalar/total_energy_contributions.py b/dist/py/properties_directory/non_scalar/total_energy_contributions.py new file mode 100644 index 000000000..b069708b0 --- /dev/null +++ b/dist/py/properties_directory/non_scalar/total_energy_contributions.py @@ -0,0 +1,211 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/total_energy_contributions.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field + + +class Name(Enum): + temperature_entropy = "temperature_entropy" + + +class ScalarSchema(BaseModel): + name: Optional[Name] = None + value: float + + +class Name744(Enum): + harris_foulkes = "harris_foulkes" + + +class ScalarSchema97(BaseModel): + name: Optional[Name744] = None + value: float + + +class Name745(Enum): + smearing = "smearing" + + +class ScalarSchema98(BaseModel): + name: Optional[Name745] = None + value: float + + +class Name746(Enum): + one_electron = "one_electron" + + +class ScalarSchema99(BaseModel): + name: Optional[Name746] = None + value: float + + +class Name747(Enum): + hartree = "hartree" + + +class ScalarSchema100(BaseModel): + name: Optional[Name747] = None + value: float + + +class Name748(Enum): + exchange = "exchange" + + +class ScalarSchema101(BaseModel): + name: Optional[Name748] = None + value: float + + +class Name749(Enum): + exchange_correlation = "exchange_correlation" + + +class ScalarSchema102(BaseModel): + name: Optional[Name749] = None + value: float + + +class Name750(Enum): + ewald = "ewald" + + +class ScalarSchema103(BaseModel): + name: Optional[Name750] = None + value: float + + +class Name751(Enum): + alphaZ = "alphaZ" + + +class ScalarSchema104(BaseModel): + name: Optional[Name751] = None + value: float + + +class Name752(Enum): + atomic_energy = "atomic_energy" + + +class ScalarSchema105(BaseModel): + name: Optional[Name752] = None + value: float + + +class Name753(Enum): + eigenvalues = "eigenvalues" + + +class ScalarSchema106(BaseModel): + name: Optional[Name753] = None + value: float + + +class Name754(Enum): + PAW_double_counting_correction_2 = "PAW_double-counting_correction_2" + + +class ScalarSchema107(BaseModel): + name: Optional[Name754] = None + value: float + + +class Name755(Enum): + PAW_double_counting_correction_3 = "PAW_double-counting_correction_3" + + +class ScalarSchema108(BaseModel): + name: Optional[Name755] = None + value: float + + +class Name756(Enum): + hartree_fock = "hartree_fock" + + +class ScalarSchema109(BaseModel): + name: Optional[Name756] = None + value: float + + +class Name757(Enum): + total_energy_contributions = "total_energy_contributions" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class TotalEnergyContributionsPropertySchema(BaseModel): + temperatureEntropy: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + product of temperature and configurational entropy + """ + harris_foulkes: Optional[ScalarSchema97] = Field(None, title="scalar schema") + """ + non self-consitent energy based on an input charge density + """ + smearing: Optional[ScalarSchema98] = Field(None, title="scalar schema") + """ + smearing energy + """ + one_electron: Optional[ScalarSchema99] = Field(None, title="scalar schema") + """ + kinetic + pseudopotential energy + """ + hartree: Optional[ScalarSchema100] = Field(None, title="scalar schema") + """ + energy due to coulomb potential + """ + exchange: Optional[ScalarSchema101] = Field(None, title="scalar schema") + """ + exchange energy + """ + exchange_correlation: Optional[ScalarSchema102] = Field(None, title="scalar schema") + """ + exchange and correlation energy per particle + """ + ewald: Optional[ScalarSchema103] = Field(None, title="scalar schema") + """ + summation of interaction energies at long length scales due to coloumbic interactions + """ + alphaZ: Optional[ScalarSchema104] = Field(None, title="scalar schema") + """ + divergent electrostatic ion interaction in compensating electron gas + """ + atomicEnergy: Optional[ScalarSchema105] = Field(None, title="scalar schema") + """ + kinetic energy of wavefunctions in the atomic limit + """ + eigenvalues: Optional[ScalarSchema106] = Field(None, title="scalar schema") + """ + sum of one electron energies of kinetic, electrostatic, and exchange correlation + """ + PAWDoubleCounting2: Optional[ScalarSchema107] = Field(None, title="scalar schema") + """ + double counting correction 2 + """ + PAWDoubleCounting3: Optional[ScalarSchema108] = Field(None, title="scalar schema") + """ + double counting correction 3 + """ + hartreeFock: Optional[ScalarSchema109] = Field(None, title="scalar schema") + """ + hartree-fock contribution + """ + name: Name757 + units: Optional[Units] = None diff --git a/dist/py/properties_directory/non_scalar/vibrational_spectrum.py b/dist/py/properties_directory/non_scalar/vibrational_spectrum.py new file mode 100644 index 000000000..afbb6eb63 --- /dev/null +++ b/dist/py/properties_directory/non_scalar/vibrational_spectrum.py @@ -0,0 +1,71 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/vibrational_spectrum.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, Field + + +class Label(Enum): + frequency = "frequency" + wavenumber = "wavenumber" + + +class Units(Enum): + cm_1 = "cm-1" + THz = "THz" + meV = "meV" + + +class AxisSchema(BaseModel): + label: Label + """ + label of an axis object + """ + units: Optional[Units] = None + """ + units for an axis + """ + + +class Label33(Enum): + Intensity = "Intensity" + Absorbance = "Absorbance" + Absorption_coefficient = "Absorption coefficient" + + +class Units336(Enum): + debye_angstrom__2 = "(debye/angstrom)^2" + km_mol = "km/mol" + m_mol = "m/mol" + a_u_ = "a.u." + + +class AxisSchema36(BaseModel): + label: Label33 + """ + label of an axis object + """ + units: Optional[Units336] = None + """ + units for an axis + """ + + +class Name(Enum): + vibrational_spectrum = "vibrational_spectrum" + + +class VibrationalSpectrumPropertySchema(BaseModel): + xAxis: AxisSchema = Field(..., title="axis schema") + yAxis: AxisSchema36 = Field(..., title="axis schema") + name: Name + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") diff --git a/dist/py/properties_directory/non_scalar/workflow.py b/dist/py/properties_directory/non_scalar/workflow.py new file mode 100644 index 000000000..acf4b1d6f --- /dev/null +++ b/dist/py/properties_directory/non_scalar/workflow.py @@ -0,0 +1,2147 @@ +# generated by datamodel-codegen: +# filename: properties_directory/non_scalar/workflow.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, RootModel, conint + + +class Name(Enum): + workflow_pyml_predict = "workflow:pyml_predict" + + +class Queue(Enum): + D = "D" + OR = "OR" + OF = "OF" + OFplus = "OFplus" + SR = "SR" + SF = "SF" + SFplus = "SFplus" + GPOF = "GPOF" + GP2OF = "GP2OF" + GP4OF = "GP4OF" + GPSF = "GPSF" + GP2SF = "GP2SF" + GP4SF = "GP4SF" + OR4 = "OR4" + OR8 = "OR8" + OR16 = "OR16" + SR4 = "SR4" + SR8 = "SR8" + SR16 = "SR16" + GOF = "GOF" + G4OF = "G4OF" + G8OF = "G8OF" + GSF = "GSF" + G4SF = "G4SF" + G8SF = "G8SF" + + +class TimeLimitType(Enum): + per_single_attempt = "per single attempt" + compound = "compound" + + +class QuantumEspressoArgumentsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + nimage: Optional[conint(ge=1, le=100)] = 1 + """ + Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. + """ + npools: Optional[conint(ge=1, le=100)] = 1 + """ + Each image can be subpartitioned into `pools`, each taking care of a group of k-points. + """ + nband: Optional[conint(ge=1, le=100)] = 1 + """ + Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). + """ + ntg: Optional[conint(ge=1, le=100)] = 1 + """ + In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. + """ + ndiag: Optional[conint(ge=1, le=100)] = 1 + """ + A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. + """ + + +class Cluster(BaseModel): + fqdn: Optional[str] = None + """ + FQDN of the cluster. e.g. master-1-staging.exabyte.io + """ + jid: Optional[str] = None + """ + Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io + """ + + +class Domain(Enum): + rupy = "rupy" + alfred = "alfred" + celim = "celim" + webapp = "webapp" + + +class Error(BaseModel): + domain: Optional[Domain] = None + """ + Domain of the error appearance (internal). + """ + reason: Optional[str] = None + """ + Should be a short, unique, machine-readable error code string. e.g. FileNotFound + """ + message: Optional[str] = None + """ + Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' + """ + traceback: Optional[str] = None + """ + Full machine-readable error traceback. e.g. FileNotFound + """ + + +class ComputeArgumentsSchema(BaseModel): + queue: Queue + """ + Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. + """ + nodes: int + """ + number of nodes used for the job inside the RMS. + """ + ppn: int + """ + number of CPUs used for the job inside the RMS. + """ + timeLimit: str + """ + Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' + """ + timeLimitType: Optional[TimeLimitType] = "per single attempt" + """ + Convention to use when reasoning about time limits + """ + isRestartable: Optional[bool] = True + """ + Job is allowed to restart on termination. + """ + notify: Optional[str] = None + """ + Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. + """ + email: Optional[str] = None + """ + Email address to notify about job execution. + """ + maxCPU: Optional[int] = None + """ + Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. + """ + arguments: Optional[QuantumEspressoArgumentsSchema] = Field({}, title="quantum espresso arguments schema") + """ + Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + """ + cluster: Optional[Cluster] = None + """ + Cluster where the job is executed. Optional on create. Required on job submission. + """ + errors: Optional[List[Error]] = None + """ + Computation error. Optional. Appears only if something happens on jobs execution. + """ + excludeFilesPattern: Optional[str] = None + """ + A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + """ + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class Subtype(Enum): + input = "input" + output = "output" + dataFrame = "dataFrame" + + +class Source(Enum): + api = "api" + db = "db" + object_storage = "object_storage" + + +class DataIODatabaseIdsInputOutputSchema(BaseModel): + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + ids: List[str] + """ + IDs of item to retrieve from db + """ + + +class DataIODatabaseCollectionInputOutputSchema(BaseModel): + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + collection: str + """ + db collection name + """ + draft: bool + """ + whether the result should be saved as draft + """ + + +class ObjectStorageContainerData(BaseModel): + CONTAINER: Optional[str] = None + """ + Object storage container for the file + """ + NAME: Optional[str] = None + """ + Name of the file inside the object storage bucket + """ + PROVIDER: Optional[str] = None + """ + Object storage provider + """ + REGION: Optional[str] = None + """ + Region for the object container specified in Container + """ + SIZE: Optional[int] = None + """ + Size of the file in bytes + """ + TIMESTAMP: Optional[str] = None + """ + Unix timestamp showing when the file was last modified + """ + + +class ObjectStorageIoSchema(BaseModel): + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + overwrite: Optional[bool] = None + """ + if a file with the same filename already exists, whether to overwrite the old file + """ + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + filetype: Optional[str] = None + """ + What kind of file this is, e.g. image / text + """ + + +class Input( + RootModel[ + Union[DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema] + ] +): + root: Union[ + DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema + ] = Field(..., discriminator="type") + + +class DataIOUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + subtype: Subtype + source: Source + input: List[Input] + + +class InputItem(BaseModel): + operation: str + """ + reduce operation, e.g. aggregate + """ + arguments: List[str] + """ + arguments which are passed to reduce operation function + """ + + +class ReduceUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + mapFlowchartId: str + """ + corresponding map unit flowchart ID + """ + input: List[InputItem] + """ + input information for reduce unit + """ + + +class WorkflowUnitInputSchema(BaseModel): + scope: str + """ + Scope of the variable. e.g. 'global' or 'flowchart_id_2' + """ + name: str + """ + Name of the input data. e.g. total_energy + """ + + +class ConditionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + input: List[WorkflowUnitInputSchema] + """ + Input information for condition. + """ + statement: str + """ + Condition statement. e.g. 'abs(x-total_energy) < 1e-5' + """ + then: str + """ + Flowchart ID reference for `then` part of the condition. + """ + else_: str = Field(..., alias="else") + """ + Flowchart ID reference for `else` part of the condition. + """ + maxOccurrences: int + """ + Maximum occurrence of the condition, usable for loops. + """ + throwException: Optional[bool] = None + """ + Throw exception on reaching to maximum occurence. + """ + + +class AssertionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + statement: str + """ + The statement to be evaluated + """ + errorMessage: Optional[str] = None + """ + The error message to be displayed if the assertion fails + """ + + +class ApplicationSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + summary: str + """ + Application's short description. + """ + version: str + """ + Application version. e.g. 5.3.5 + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ + + +class ExecutableSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class FlavorSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ + + +class TemplateSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema(BaseModel): + template: TemplateSchema = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class ContextItem(BaseModel): + name: str + isEdited: bool + data: Dict[str, Any] + extraData: Optional[Dict[str, Any]] = None + + +class ExecutionUnitSchemaBase(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + application: ApplicationSchema = Field(..., title="application schema") + executable: Optional[ExecutableSchema] = Field(None, title="executable schema") + flavor: Optional[FlavorSchema] = Field(None, title="flavor schema") + input: List[ExecutionUnitInputItemSchema] + context: Optional[List[ContextItem]] = None + + +class AssignmentUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + scope: Optional[str] = None + input: List[WorkflowUnitInputSchema] + """ + Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + """ + operand: str + """ + Name of the global variable. e.g. 'x' + """ + value: Union[str, bool, float] + """ + Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + """ + + +class ProcessingUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + operation: str + """ + Contains information about the operation used. + """ + operationType: str + """ + Contains information about the specific type of the operation used. + """ + inputData: Any + """ + unit input (type to be specified by the child units) + """ + + +class WorkflowSubworkflowUnitSchema( + RootModel[ + Union[ + DataIOUnitSchema, + ReduceUnitSchema, + ConditionUnitSchema, + AssertionUnitSchema, + ExecutionUnitSchemaBase, + AssignmentUnitSchema, + ProcessingUnitSchema, + ] + ] +): + root: Union[ + DataIOUnitSchema, + ReduceUnitSchema, + ConditionUnitSchema, + AssertionUnitSchema, + ExecutionUnitSchemaBase, + AssignmentUnitSchema, + ProcessingUnitSchema, + ] = Field(..., discriminator="type", title="workflow subworkflow unit schema") + + +class BaseMethod(BaseModel): + type: str + """ + general type of this method, eg. `pseudopotential` + """ + subtype: str + """ + general subtype of this method, eg. `ultra-soft` + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + data: Optional[Dict[str, Any]] = None + """ + additional data specific to method, eg. array of pseudopotentials + """ + + +class BaseModel1(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + type: str + """ + general type of the model, eg. `dft` + """ + subtype: str + """ + general subtype of the model, eg. `lda` + """ + method: BaseMethod = Field(..., title="base method") + + +class SubworkflowSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + properties: Optional[List[str]] = None + """ + Array of characteristic properties calculated by this subworkflow + """ + compute: Optional[ComputeArgumentsSchema] = Field(None, title="compute arguments schema") + """ + Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + """ + units: List[WorkflowSubworkflowUnitSchema] + """ + Contains the Units of the subworkflow + """ + model: BaseModel1 = Field(..., title="base model") + application: ApplicationSchema = Field(..., title="application schema") + isDraft: Optional[bool] = False + """ + Defines whether to store the results/properties extracted in this unit to properties collection + """ + + +class ObjectStorageIoSchema14(BaseModel): + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + overwrite: Optional[bool] = None + """ + if a file with the same filename already exists, whether to overwrite the old file + """ + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + filetype: Optional[str] = None + """ + What kind of file this is, e.g. image / text + """ + + +class Input19( + RootModel[ + Union[DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema14] + ] +): + root: Union[ + DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema14 + ] = Field(..., discriminator="type") + + +class DataIOUnitSchema12(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + subtype: Subtype + source: Source + input: List[Input19] + + +class ReduceUnitSchema12(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + mapFlowchartId: str + """ + corresponding map unit flowchart ID + """ + input: List[InputItem] + """ + input information for reduce unit + """ + + +class ConditionUnitSchema12(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + input: List[WorkflowUnitInputSchema] + """ + Input information for condition. + """ + statement: str + """ + Condition statement. e.g. 'abs(x-total_energy) < 1e-5' + """ + then: str + """ + Flowchart ID reference for `then` part of the condition. + """ + else_: str = Field(..., alias="else") + """ + Flowchart ID reference for `else` part of the condition. + """ + maxOccurrences: int + """ + Maximum occurrence of the condition, usable for loops. + """ + throwException: Optional[bool] = None + """ + Throw exception on reaching to maximum occurence. + """ + + +class AssertionUnitSchema12(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + statement: str + """ + The statement to be evaluated + """ + errorMessage: Optional[str] = None + """ + The error message to be displayed if the assertion fails + """ + + +class ExecutableSchema16(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + + +class FlavorSchema16(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ + + +class TemplateSchema20(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema17(BaseModel): + template: TemplateSchema20 = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class ExecutionUnitSchemaBase12(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + application: ApplicationSchema = Field(..., title="application schema") + executable: Optional[ExecutableSchema16] = Field(None, title="executable schema") + flavor: Optional[FlavorSchema16] = Field(None, title="flavor schema") + input: List[ExecutionUnitInputItemSchema17] + context: Optional[List[ContextItem]] = None + + +class AssignmentUnitSchema12(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + scope: Optional[str] = None + input: List[WorkflowUnitInputSchema] + """ + Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + """ + operand: str + """ + Name of the global variable. e.g. 'x' + """ + value: Union[str, bool, float] + """ + Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + """ + + +class ProcessingUnitSchema12(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + operation: str + """ + Contains information about the operation used. + """ + operationType: str + """ + Contains information about the specific type of the operation used. + """ + inputData: Any + """ + unit input (type to be specified by the child units) + """ + + +class Input20(BaseModel): + target: str + """ + Name of the target variable to substitute using the values below. e.g. K_POINTS + """ + scope: Optional[str] = None + """ + Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given. + """ + name: Optional[str] = None + """ + Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given. + """ + values: Optional[List[Union[str, float, Dict[str, Any]]]] = None + """ + Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution + """ + useValues: Optional[bool] = None + + +class MapUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["7#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + workflowId: str + """ + Id of workflow to run inside map + """ + input: Input20 + """ + Input information for map. + """ + + +class SubworkflowUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["8#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + + +class WorkflowUnitSchema( + RootModel[ + Union[ + DataIOUnitSchema12, + ReduceUnitSchema12, + ConditionUnitSchema12, + AssertionUnitSchema12, + ExecutionUnitSchemaBase12, + AssignmentUnitSchema12, + ProcessingUnitSchema12, + MapUnitSchema, + SubworkflowUnitSchema, + ] + ] +): + root: Union[ + DataIOUnitSchema12, + ReduceUnitSchema12, + ConditionUnitSchema12, + AssertionUnitSchema12, + ExecutionUnitSchemaBase12, + AssignmentUnitSchema12, + ProcessingUnitSchema12, + MapUnitSchema, + SubworkflowUnitSchema, + ] = Field(..., discriminator="type", title="workflow unit schema") + + +class WorkflowPropertySchema(BaseModel): + name: Name + """ + entity name + """ + subworkflows: List[SubworkflowSchema] + """ + Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting + """ + units: List[WorkflowUnitSchema] + """ + Contains the Units of the Workflow + """ + properties: Optional[List[Union[str, Dict[str, Any]]]] = None + """ + Array of characteristic properties calculated by this workflow (TODO: add enums) + """ + isUsingDataset: Optional[bool] = None + """ + Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab. + """ + workflows: Optional[List[Dict[str, Any]]] = None + """ + Array of workflows with the same schema as the current one. + """ + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + metadata: Optional[Dict[str, Any]] = None diff --git a/dist/py/properties_directory/reusable/__init__.py b/dist/py/properties_directory/reusable/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/properties_directory/reusable/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/properties_directory/reusable/hubbard_parameters.py b/dist/py/properties_directory/reusable/hubbard_parameters.py new file mode 100644 index 000000000..e4a0ee55a --- /dev/null +++ b/dist/py/properties_directory/reusable/hubbard_parameters.py @@ -0,0 +1,48 @@ +# generated by datamodel-codegen: +# filename: properties_directory/reusable/hubbard_parameters.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, constr + + +class Units(Enum): + eV = "eV" + + +class AtomicDataPerOrbitalPairNumeric(BaseModel): + id: int + """ + Site number or index in the lattice + """ + id2: int + """ + Site number or index in the lattice of second site + """ + atomicSpecies: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$") + """ + Example: Co1, Mn + """ + atomicSpecies2: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$") + """ + Example: Co2, O + """ + orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + orbitalName2: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + distance: Optional[float] = None + """ + Distance between two sites in Bohr. + """ + value: float + """ + Value related to a specific property, e.g., Hubbard U, V etc. + """ + + +class HubbardParametersReusableSchema(BaseModel): + units: Units + values: List[AtomicDataPerOrbitalPairNumeric] diff --git a/dist/py/properties_directory/scalar/__init__.py b/dist/py/properties_directory/scalar/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/properties_directory/scalar/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/properties_directory/scalar/electron_affinity.py b/dist/py/properties_directory/scalar/electron_affinity.py new file mode 100644 index 000000000..5585f3789 --- /dev/null +++ b/dist/py/properties_directory/scalar/electron_affinity.py @@ -0,0 +1,34 @@ +# generated by datamodel-codegen: +# filename: properties_directory/scalar/electron_affinity.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Union + +from pydantic import BaseModel + + +class Name(Enum): + electron_affinity = "electron_affinity" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units181(Enum): + eV_A_2 = "eV/A^2" + + +class ElectronAffinityPropertySchema(BaseModel): + name: Name + units: Union[Units, Units181] + value: float diff --git a/dist/py/properties_directory/scalar/fermi_energy.py b/dist/py/properties_directory/scalar/fermi_energy.py new file mode 100644 index 000000000..cd1ec96e8 --- /dev/null +++ b/dist/py/properties_directory/scalar/fermi_energy.py @@ -0,0 +1,34 @@ +# generated by datamodel-codegen: +# filename: properties_directory/scalar/fermi_energy.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Union + +from pydantic import BaseModel + + +class Name(Enum): + fermi_energy = "fermi_energy" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units188(Enum): + eV_A_2 = "eV/A^2" + + +class FermiEnergyPropertySchema(BaseModel): + name: Name + units: Union[Units, Units188] + value: float diff --git a/dist/py/properties_directory/scalar/formation_energy.py b/dist/py/properties_directory/scalar/formation_energy.py new file mode 100644 index 000000000..53b4e1213 --- /dev/null +++ b/dist/py/properties_directory/scalar/formation_energy.py @@ -0,0 +1,34 @@ +# generated by datamodel-codegen: +# filename: properties_directory/scalar/formation_energy.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Union + +from pydantic import BaseModel + + +class Name(Enum): + formation_energy = "formation_energy" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units190(Enum): + eV_A_2 = "eV/A^2" + + +class FormationEnergyPropertySchema(BaseModel): + name: Name + units: Union[Units, Units190] + value: float diff --git a/dist/py/properties_directory/scalar/ionization_potential.py b/dist/py/properties_directory/scalar/ionization_potential.py new file mode 100644 index 000000000..dd1763ad0 --- /dev/null +++ b/dist/py/properties_directory/scalar/ionization_potential.py @@ -0,0 +1,34 @@ +# generated by datamodel-codegen: +# filename: properties_directory/scalar/ionization_potential.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Union + +from pydantic import BaseModel + + +class Name(Enum): + ionization_potential = "ionization_potential" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units248(Enum): + eV_A_2 = "eV/A^2" + + +class IonizationPotentialScalarPropertySchema(BaseModel): + name: Name + units: Union[Units, Units248] + value: float diff --git a/dist/py/properties_directory/scalar/pressure.py b/dist/py/properties_directory/scalar/pressure.py new file mode 100644 index 000000000..7994d6416 --- /dev/null +++ b/dist/py/properties_directory/scalar/pressure.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: properties_directory/scalar/pressure.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class Name(Enum): + pressure = "pressure" + + +class Units(Enum): + kbar = "kbar" + pa = "pa" + + +class PressurePropertySchema(BaseModel): + name: Name + units: Units + value: float diff --git a/dist/py/properties_directory/scalar/reaction_energy_barrier.py b/dist/py/properties_directory/scalar/reaction_energy_barrier.py new file mode 100644 index 000000000..bdb418ba4 --- /dev/null +++ b/dist/py/properties_directory/scalar/reaction_energy_barrier.py @@ -0,0 +1,34 @@ +# generated by datamodel-codegen: +# filename: properties_directory/scalar/reaction_energy_barrier.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Union + +from pydantic import BaseModel + + +class Name(Enum): + reaction_energy_barrier = "reaction_energy_barrier" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units281(Enum): + eV_A_2 = "eV/A^2" + + +class ReactionEnergyBarrierPropertySchema(BaseModel): + name: Name + units: Union[Units, Units281] + value: float diff --git a/dist/py/properties_directory/scalar/surface_energy.py b/dist/py/properties_directory/scalar/surface_energy.py new file mode 100644 index 000000000..50ac6c661 --- /dev/null +++ b/dist/py/properties_directory/scalar/surface_energy.py @@ -0,0 +1,34 @@ +# generated by datamodel-codegen: +# filename: properties_directory/scalar/surface_energy.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Union + +from pydantic import BaseModel + + +class Name(Enum): + surface_energy = "surface_energy" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units321(Enum): + eV_A_2 = "eV/A^2" + + +class SurfaceEnergyPropertySchema(BaseModel): + name: Name + units: Union[Units, Units321] + value: float diff --git a/dist/py/properties_directory/scalar/total_energy.py b/dist/py/properties_directory/scalar/total_energy.py new file mode 100644 index 000000000..633faf78d --- /dev/null +++ b/dist/py/properties_directory/scalar/total_energy.py @@ -0,0 +1,34 @@ +# generated by datamodel-codegen: +# filename: properties_directory/scalar/total_energy.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Union + +from pydantic import BaseModel + + +class Name(Enum): + total_energy = "total_energy" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units324(Enum): + eV_A_2 = "eV/A^2" + + +class TotalEnergyPropertySchema(BaseModel): + name: Name + units: Union[Units, Units324] + value: float diff --git a/dist/py/properties_directory/scalar/total_force.py b/dist/py/properties_directory/scalar/total_force.py new file mode 100644 index 000000000..99142f420 --- /dev/null +++ b/dist/py/properties_directory/scalar/total_force.py @@ -0,0 +1,28 @@ +# generated by datamodel-codegen: +# filename: properties_directory/scalar/total_force.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class Name(Enum): + total_force = "total_force" + + +class Units(Enum): + eV_bohr = "eV/bohr" + eV_angstrom = "eV/angstrom" + Ry_a_u_ = "Ry/a.u." + newton = "newton" + kg_m_s_2 = "kg*m/s^2" + eV_a_u_ = "eV/a.u." + + +class TotalForcesPropertySchema(BaseModel): + name: Name + units: Units + value: float diff --git a/dist/py/properties_directory/scalar/valence_band_offset.py b/dist/py/properties_directory/scalar/valence_band_offset.py new file mode 100644 index 000000000..89214cd57 --- /dev/null +++ b/dist/py/properties_directory/scalar/valence_band_offset.py @@ -0,0 +1,34 @@ +# generated by datamodel-codegen: +# filename: properties_directory/scalar/valence_band_offset.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Union + +from pydantic import BaseModel + + +class Name(Enum): + valence_band_offset = "valence_band_offset" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units334(Enum): + eV_A_2 = "eV/A^2" + + +class ValenceBandOffsetPropertySchema(BaseModel): + name: Name + units: Union[Units, Units334] + value: float diff --git a/dist/py/properties_directory/scalar/zero_point_energy.py b/dist/py/properties_directory/scalar/zero_point_energy.py new file mode 100644 index 000000000..800094793 --- /dev/null +++ b/dist/py/properties_directory/scalar/zero_point_energy.py @@ -0,0 +1,34 @@ +# generated by datamodel-codegen: +# filename: properties_directory/scalar/zero_point_energy.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Union + +from pydantic import BaseModel + + +class Name(Enum): + zero_point_energy = "zero_point_energy" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units342(Enum): + eV_A_2 = "eV/A^2" + + +class ZeroPointEnergyPropertySchema(BaseModel): + name: Name + units: Union[Units, Units342] + value: float diff --git a/dist/py/properties_directory/structural/__init__.py b/dist/py/properties_directory/structural/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/properties_directory/structural/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/properties_directory/structural/atomic_forces.py b/dist/py/properties_directory/structural/atomic_forces.py new file mode 100644 index 000000000..1cea17744 --- /dev/null +++ b/dist/py/properties_directory/structural/atomic_forces.py @@ -0,0 +1,40 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/atomic_forces.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List + +from pydantic import BaseModel, Field + + +class Name(Enum): + atomic_forces = "atomic_forces" + + +class AtomicVectorSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class Units(Enum): + eV_bohr = "eV/bohr" + eV_angstrom = "eV/angstrom" + Ry_a_u_ = "Ry/a.u." + newton = "newton" + kg_m_s_2 = "kg*m/s^2" + eV_a_u_ = "eV/a.u." + + +class AtomicForcesPropertySchema(BaseModel): + name: Name + values: List[AtomicVectorSchema] = Field(..., title="atomic vectors schema") + units: Units diff --git a/dist/py/properties_directory/structural/basis/__init__.py b/dist/py/properties_directory/structural/basis/__init__.py new file mode 100644 index 000000000..c67d88b56 --- /dev/null +++ b/dist/py/properties_directory/structural/basis/__init__.py @@ -0,0 +1,190 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/basis.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, Field, conint + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value15(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value15] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class BasisSchema(BaseModel): + elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ + coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ + units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum") + labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema") + """ + atomic labels schema + """ diff --git a/dist/py/properties_directory/structural/basis/atomic_constraint.py b/dist/py/properties_directory/structural/basis/atomic_constraint.py new file mode 100644 index 000000000..982fbeb1d --- /dev/null +++ b/dist/py/properties_directory/structural/basis/atomic_constraint.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/basis/atomic_constraint.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import BaseModel, Field + + +class AtomicConstraintSchema(BaseModel): + value: List[bool] = Field(..., title="vector boolean 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ diff --git a/dist/py/properties_directory/structural/basis/atomic_constraints.py b/dist/py/properties_directory/structural/basis/atomic_constraints.py new file mode 100644 index 000000000..6b18d0371 --- /dev/null +++ b/dist/py/properties_directory/structural/basis/atomic_constraints.py @@ -0,0 +1,27 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/basis/atomic_constraints.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import BaseModel, Field, RootModel + + +class AtomicConstraintSchema(BaseModel): + value: List[bool] = Field(..., title="vector boolean 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class AtomicConstraintsSchema(RootModel[List[AtomicConstraintSchema]]): + root: List[AtomicConstraintSchema] = Field(..., title="atomic constraints schema") + """ + atomic constraints schema + """ diff --git a/dist/py/properties_directory/structural/basis/atomic_constraints_property.py b/dist/py/properties_directory/structural/basis/atomic_constraints_property.py new file mode 100644 index 000000000..04fb48c2c --- /dev/null +++ b/dist/py/properties_directory/structural/basis/atomic_constraints_property.py @@ -0,0 +1,33 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/basis/atomic_constraints_property.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List + +from pydantic import BaseModel, Field + + +class Name(Enum): + atomic_constraints = "atomic_constraints" + + +class AtomicConstraintSchema(BaseModel): + value: List[bool] = Field(..., title="vector boolean 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class AtomicConstraintsPropertySchema(BaseModel): + name: Name + values: List[AtomicConstraintSchema] = Field(..., title="atomic constraints schema") + """ + atomic constraints schema + """ diff --git a/dist/py/properties_directory/structural/basis/atomic_coordinate.py b/dist/py/properties_directory/structural/basis/atomic_coordinate.py new file mode 100644 index 000000000..65eb22624 --- /dev/null +++ b/dist/py/properties_directory/structural/basis/atomic_coordinate.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/basis/atomic_coordinate.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import BaseModel, Field + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ diff --git a/dist/py/properties_directory/structural/basis/atomic_coordinates.py b/dist/py/properties_directory/structural/basis/atomic_coordinates.py new file mode 100644 index 000000000..347c35e67 --- /dev/null +++ b/dist/py/properties_directory/structural/basis/atomic_coordinates.py @@ -0,0 +1,27 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/basis/atomic_coordinates.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import BaseModel, Field, RootModel + + +class AtomicCoordinateSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class AtomicCoordinatesSchema(RootModel[List[AtomicCoordinateSchema]]): + root: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema") + """ + atomic coordinates schema + """ diff --git a/dist/py/properties_directory/structural/basis/atomic_element.py b/dist/py/properties_directory/structural/basis/atomic_element.py new file mode 100644 index 000000000..1550ba12a --- /dev/null +++ b/dist/py/properties_directory/structural/basis/atomic_element.py @@ -0,0 +1,147 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/basis/atomic_element.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Union + +from pydantic import BaseModel + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value1(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value1] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ diff --git a/dist/py/properties_directory/structural/basis/atomic_elements.py b/dist/py/properties_directory/structural/basis/atomic_elements.py new file mode 100644 index 000000000..90bc8b1fa --- /dev/null +++ b/dist/py/properties_directory/structural/basis/atomic_elements.py @@ -0,0 +1,154 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/basis/atomic_elements.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Union + +from pydantic import BaseModel, Field, RootModel + + +class Value(Enum): + H = "H" + He = "He" + Li = "Li" + Be = "Be" + B = "B" + C = "C" + N = "N" + O = "O" + F = "F" + Ne = "Ne" + Na = "Na" + Mg = "Mg" + Al = "Al" + Si = "Si" + P = "P" + S = "S" + Cl = "Cl" + Ar = "Ar" + K = "K" + Ca = "Ca" + Sc = "Sc" + Ti = "Ti" + V = "V" + Cr = "Cr" + Mn = "Mn" + Fe = "Fe" + Co = "Co" + Ni = "Ni" + Cu = "Cu" + Zn = "Zn" + Ga = "Ga" + Ge = "Ge" + As = "As" + Se = "Se" + Br = "Br" + Kr = "Kr" + Rb = "Rb" + Sr = "Sr" + Y = "Y" + Zr = "Zr" + Nb = "Nb" + Mo = "Mo" + Tc = "Tc" + Ru = "Ru" + Rh = "Rh" + Pd = "Pd" + Ag = "Ag" + Cd = "Cd" + In = "In" + Sn = "Sn" + Sb = "Sb" + Te = "Te" + I = "I" + Xe = "Xe" + Cs = "Cs" + Ba = "Ba" + La = "La" + Ce = "Ce" + Pr = "Pr" + Nd = "Nd" + Pm = "Pm" + Sm = "Sm" + Eu = "Eu" + Gd = "Gd" + Tb = "Tb" + Dy = "Dy" + Ho = "Ho" + Er = "Er" + Tm = "Tm" + Yb = "Yb" + Lu = "Lu" + Hf = "Hf" + Ta = "Ta" + W = "W" + Re = "Re" + Os = "Os" + Ir = "Ir" + Pt = "Pt" + Au = "Au" + Hg = "Hg" + Tl = "Tl" + Pb = "Pb" + Bi = "Bi" + Po = "Po" + At = "At" + Rn = "Rn" + Fr = "Fr" + Ra = "Ra" + Ac = "Ac" + Th = "Th" + Pa = "Pa" + U = "U" + Np = "Np" + Pu = "Pu" + Am = "Am" + Cm = "Cm" + Bk = "Bk" + Cf = "Cf" + Es = "Es" + Fm = "Fm" + Md = "Md" + No = "No" + Lr = "Lr" + Rf = "Rf" + Db = "Db" + Sg = "Sg" + Bh = "Bh" + Hs = "Hs" + Mt = "Mt" + Ds = "Ds" + Rg = "Rg" + Cn = "Cn" + Nh = "Nh" + Fl = "Fl" + Mc = "Mc" + Lv = "Lv" + Ts = "Ts" + Og = "Og" + + +class Value3(Enum): + X = "X" + Vac = "Vac" + + +class AtomicElementSchema(BaseModel): + value: Union[Value, Value3] + """ + All elements, including extra elements + """ + id: int + """ + integer id of this entry + """ + + +class AtomicElementsSchema(RootModel[List[AtomicElementSchema]]): + root: List[AtomicElementSchema] = Field(..., title="atomic elements schema") + """ + atomic elements schema + """ diff --git a/dist/py/properties_directory/structural/basis/atomic_label.py b/dist/py/properties_directory/structural/basis/atomic_label.py new file mode 100644 index 000000000..98702606c --- /dev/null +++ b/dist/py/properties_directory/structural/basis/atomic_label.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/basis/atomic_label.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Union + +from pydantic import BaseModel, conint + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ diff --git a/dist/py/properties_directory/structural/basis/atomic_labels.py b/dist/py/properties_directory/structural/basis/atomic_labels.py new file mode 100644 index 000000000..88448918c --- /dev/null +++ b/dist/py/properties_directory/structural/basis/atomic_labels.py @@ -0,0 +1,27 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/basis/atomic_labels.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Union + +from pydantic import BaseModel, Field, RootModel, conint + + +class AtomicLabelSchema(BaseModel): + value: Union[Union[int, str, float], conint(ge=1, le=9)] + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class AtomicLabelsSchema(RootModel[List[AtomicLabelSchema]]): + root: List[AtomicLabelSchema] = Field(..., title="atomic labels schema") + """ + atomic labels schema + """ diff --git a/dist/py/properties_directory/structural/basis/bonds.py b/dist/py/properties_directory/structural/basis/bonds.py new file mode 100644 index 000000000..6705f88c2 --- /dev/null +++ b/dist/py/properties_directory/structural/basis/bonds.py @@ -0,0 +1,40 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/basis/bonds.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, Field, RootModel + + +class ObjectWithId(BaseModel): + id: int + """ + integer id of this entry + """ + + +class BondType(Enum): + single = "single" + double = "double" + triple = "triple" + quadruple = "quadruple" + aromatic = "aromatic" + tautomeric = "tautomeric" + dative = "dative" + other = "other" + + +class BondsSchemaItem(BaseModel): + atomPair: Optional[List[ObjectWithId]] = Field(None, max_length=2, min_length=2, title="array of ids") + """ + indices of the two connected atoms + """ + bondType: Optional[BondType] = None + + +class BondsSchema(RootModel[List[BondsSchemaItem]]): + root: List[BondsSchemaItem] = Field(..., title="bonds schema") diff --git a/dist/py/properties_directory/structural/basis/boundary_conditions.py b/dist/py/properties_directory/structural/basis/boundary_conditions.py new file mode 100644 index 000000000..b290eb612 --- /dev/null +++ b/dist/py/properties_directory/structural/basis/boundary_conditions.py @@ -0,0 +1,30 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/basis/boundary_conditions.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel + + +class Name(Enum): + boundary_conditions = "boundary_conditions" + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditionsPropertySchema(BaseModel): + name: Name + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float diff --git a/dist/py/properties_directory/structural/basis/units_enum.py b/dist/py/properties_directory/structural/basis/units_enum.py new file mode 100644 index 000000000..f3c90423a --- /dev/null +++ b/dist/py/properties_directory/structural/basis/units_enum.py @@ -0,0 +1,12 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/basis/units_enum.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + + +class BasisUnitsEnum(Enum): + crystal = "crystal" + cartesian = "cartesian" diff --git a/dist/py/properties_directory/structural/density.py b/dist/py/properties_directory/structural/density.py new file mode 100644 index 000000000..2f55c455f --- /dev/null +++ b/dist/py/properties_directory/structural/density.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/density.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel + + +class Name(Enum): + density = "density" + + +class Units(Enum): + g_cm_3 = "g/cm^3" + + +class DensitySchema(BaseModel): + name: Optional[Name] = None + units: Optional[Units] = None + value: float diff --git a/dist/py/properties_directory/structural/elemental_ratio.py b/dist/py/properties_directory/structural/elemental_ratio.py new file mode 100644 index 000000000..361a46ef4 --- /dev/null +++ b/dist/py/properties_directory/structural/elemental_ratio.py @@ -0,0 +1,23 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/elemental_ratio.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, confloat + + +class Name(Enum): + elemental_ratio = "elemental_ratio" + + +class ElementalRatio(BaseModel): + name: Optional[Name] = None + value: confloat(ge=0.0, le=1.0) + element: Optional[str] = None + """ + the element this ratio is for + """ diff --git a/dist/py/properties_directory/structural/inchi.py b/dist/py/properties_directory/structural/inchi.py new file mode 100644 index 000000000..27adce072 --- /dev/null +++ b/dist/py/properties_directory/structural/inchi.py @@ -0,0 +1,19 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/inchi.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel + + +class Name(Enum): + inchi = "inchi" + + +class InChIRepresentationSchema(BaseModel): + name: Optional[Name] = None + value: str diff --git a/dist/py/properties_directory/structural/inchi_key.py b/dist/py/properties_directory/structural/inchi_key.py new file mode 100644 index 000000000..ed763cec0 --- /dev/null +++ b/dist/py/properties_directory/structural/inchi_key.py @@ -0,0 +1,19 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/inchi_key.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel + + +class Name(Enum): + inchi_key = "inchi_key" + + +class InChIKeyRepresentationSchema(BaseModel): + name: Optional[Name] = None + value: str diff --git a/dist/py/properties_directory/structural/lattice/__init__.py b/dist/py/properties_directory/structural/lattice/__init__.py new file mode 100644 index 000000000..5cd9f9469 --- /dev/null +++ b/dist/py/properties_directory/structural/lattice/__init__.py @@ -0,0 +1,91 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/lattice.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") + + +class LatticeSchema(BaseModel): + a: float + """ + length of the first lattice vector + """ + b: float + """ + length of the second lattice vector + """ + c: float + """ + length of the third lattice vector + """ + alpha: float + """ + angle between first and second lattice vector + """ + beta: float + """ + angle between second and third lattice vector + """ + gamma: float + """ + angle between first and third lattice vector + """ + vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema") + type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum") + units: Optional[LatticeUnitsSchema] = Field( + default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}), + title="Lattice units schema", + ) diff --git a/dist/py/properties_directory/structural/lattice/type_enum.py b/dist/py/properties_directory/structural/lattice/type_enum.py new file mode 100644 index 000000000..16cb2dd8e --- /dev/null +++ b/dist/py/properties_directory/structural/lattice/type_enum.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/lattice/type_enum.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + + +class LatticeTypeEnum(Enum): + CUB = "CUB" + BCC = "BCC" + FCC = "FCC" + TET = "TET" + MCL = "MCL" + ORC = "ORC" + ORCC = "ORCC" + ORCF = "ORCF" + ORCI = "ORCI" + HEX = "HEX" + BCT = "BCT" + TRI = "TRI" + MCLC = "MCLC" + RHL = "RHL" diff --git a/dist/py/properties_directory/structural/lattice/type_extended_enum.py b/dist/py/properties_directory/structural/lattice/type_extended_enum.py new file mode 100644 index 000000000..1e55db812 --- /dev/null +++ b/dist/py/properties_directory/structural/lattice/type_extended_enum.py @@ -0,0 +1,35 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/lattice/type_extended_enum.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + + +class LatticeTypeExtendedEnum(Enum): + BCC = "BCC" + BCT_1 = "BCT-1" + BCT_2 = "BCT-2" + CUB = "CUB" + FCC = "FCC" + HEX = "HEX" + MCL = "MCL" + MCLC_1 = "MCLC-1" + MCLC_2 = "MCLC-2" + MCLC_3 = "MCLC-3" + MCLC_4 = "MCLC-4" + MCLC_5 = "MCLC-5" + ORC = "ORC" + ORCC = "ORCC" + ORCF_1 = "ORCF-1" + ORCF_2 = "ORCF-2" + ORCF_3 = "ORCF-3" + ORCI = "ORCI" + RHL_1 = "RHL-1" + RHL_2 = "RHL-2" + TET = "TET" + TRI_1a = "TRI_1a" + TRI_1b = "TRI_1b" + TRI_2a = "TRI_2a" + TRI_2b = "TRI_2b" diff --git a/dist/py/properties_directory/structural/lattice/units/__init__.py b/dist/py/properties_directory/structural/lattice/units/__init__.py new file mode 100644 index 000000000..bddbd10c6 --- /dev/null +++ b/dist/py/properties_directory/structural/lattice/units/__init__.py @@ -0,0 +1,25 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/lattice/units.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" + + +class LatticeUnitsSchema(BaseModel): + length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum") + angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum") diff --git a/dist/py/properties_directory/structural/lattice/units/angle_enum.py b/dist/py/properties_directory/structural/lattice/units/angle_enum.py new file mode 100644 index 000000000..a9765a96c --- /dev/null +++ b/dist/py/properties_directory/structural/lattice/units/angle_enum.py @@ -0,0 +1,12 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/lattice/units/angle_enum.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + + +class LatticeUnitsAngleEnum(Enum): + degree = "degree" + radian = "radian" diff --git a/dist/py/properties_directory/structural/lattice/units/length_enum.py b/dist/py/properties_directory/structural/lattice/units/length_enum.py new file mode 100644 index 000000000..aa897f4ee --- /dev/null +++ b/dist/py/properties_directory/structural/lattice/units/length_enum.py @@ -0,0 +1,12 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/lattice/units/length_enum.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + + +class LatticeUnitsLengthEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" diff --git a/dist/py/properties_directory/structural/lattice/vectors/__init__.py b/dist/py/properties_directory/structural/lattice/vectors/__init__.py new file mode 100644 index 000000000..bf9dd59d0 --- /dev/null +++ b/dist/py/properties_directory/structural/lattice/vectors/__init__.py @@ -0,0 +1,26 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/lattice/vectors.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" + + +class LatticeVectorsSchema(BaseModel): + a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + alat: Optional[float] = 1 + """ + lattice parameter for fractional coordinates + """ + units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum") diff --git a/dist/py/properties_directory/structural/lattice/vectors/units_enum.py b/dist/py/properties_directory/structural/lattice/vectors/units_enum.py new file mode 100644 index 000000000..e2b0084f8 --- /dev/null +++ b/dist/py/properties_directory/structural/lattice/vectors/units_enum.py @@ -0,0 +1,12 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/lattice/vectors/units_enum.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + + +class LatticeVectorsUnitsEnum(Enum): + angstrom = "angstrom" + bohr = "bohr" diff --git a/dist/py/properties_directory/structural/magnetic_moments.py b/dist/py/properties_directory/structural/magnetic_moments.py new file mode 100644 index 000000000..37445e903 --- /dev/null +++ b/dist/py/properties_directory/structural/magnetic_moments.py @@ -0,0 +1,35 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/magnetic_moments.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List + +from pydantic import BaseModel, Field + + +class Name(Enum): + magnetic_moments = "magnetic_moments" + + +class AtomicVectorSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class Units(Enum): + uB = "uB" + + +class MagneticMomentsPropertySchema(BaseModel): + name: Name + values: List[AtomicVectorSchema] = Field(..., title="atomic vectors schema") + units: Units diff --git a/dist/py/properties_directory/structural/molecular_pattern.py b/dist/py/properties_directory/structural/molecular_pattern.py new file mode 100644 index 000000000..eefe55903 --- /dev/null +++ b/dist/py/properties_directory/structural/molecular_pattern.py @@ -0,0 +1,70 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/molecular_pattern.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, Field, RootModel + + +class Name(Enum): + functional_group = "functional_group" + + +class ObjectWithId(BaseModel): + isConnector: Optional[bool] = None + """ + whether atom connects to atoms outside of functional group. + """ + id: int + """ + integer id of this entry + """ + + +class FunctionalGroupPatternSchema(BaseModel): + name: Name + atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids") + """ + array of objects containing integer id each + """ + SMARTS: Optional[str] = None + """ + SMARTS string for classification of FG; https://en.wikipedia.org/wiki/SMILES_arbitrary_target_specification + """ + + +class Name570(Enum): + ring = "ring" + + +class RingPatternSchema(BaseModel): + name: Name570 + atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids") + """ + array of objects containing integer id each + """ + isAromatic: Optional[bool] = None + + +class Name571(Enum): + special_bond = "special_bond" + + +class SpecialBondPatternSchema(BaseModel): + name: Name571 + atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids") + """ + array of objects containing integer id each + """ + + +class MolecularPatternSchema( + RootModel[List[Union[FunctionalGroupPatternSchema, RingPatternSchema, SpecialBondPatternSchema]]] +): + root: List[Union[FunctionalGroupPatternSchema, RingPatternSchema, SpecialBondPatternSchema]] = Field( + ..., title="molecular pattern schema" + ) diff --git a/dist/py/properties_directory/structural/p_norm.py b/dist/py/properties_directory/structural/p_norm.py new file mode 100644 index 000000000..2673873e3 --- /dev/null +++ b/dist/py/properties_directory/structural/p_norm.py @@ -0,0 +1,23 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/p_norm.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel + + +class Name(Enum): + p_norm = "p-norm" + + +class PNorm(BaseModel): + name: Optional[Name] = None + degree: Optional[int] = None + """ + degree of the dimensionality of the norm + """ + value: float diff --git a/dist/py/properties_directory/structural/patterns/__init__.py b/dist/py/properties_directory/structural/patterns/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/properties_directory/structural/patterns/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/properties_directory/structural/patterns/functional_group.py b/dist/py/properties_directory/structural/patterns/functional_group.py new file mode 100644 index 000000000..6b2586c17 --- /dev/null +++ b/dist/py/properties_directory/structural/patterns/functional_group.py @@ -0,0 +1,37 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/patterns/functional_group.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class Name(Enum): + functional_group = "functional_group" + + +class ObjectWithId(BaseModel): + isConnector: Optional[bool] = None + """ + whether atom connects to atoms outside of functional group. + """ + id: int + """ + integer id of this entry + """ + + +class FunctionalGroupPatternSchema(BaseModel): + name: Name + atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids") + """ + array of objects containing integer id each + """ + SMARTS: Optional[str] = None + """ + SMARTS string for classification of FG; https://en.wikipedia.org/wiki/SMILES_arbitrary_target_specification + """ diff --git a/dist/py/properties_directory/structural/patterns/ring.py b/dist/py/properties_directory/structural/patterns/ring.py new file mode 100644 index 000000000..bb43e4471 --- /dev/null +++ b/dist/py/properties_directory/structural/patterns/ring.py @@ -0,0 +1,34 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/patterns/ring.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class Name(Enum): + ring = "ring" + + +class ObjectWithId(BaseModel): + isConnector: Optional[bool] = None + """ + whether atom connects to atoms outside of functional group. + """ + id: int + """ + integer id of this entry + """ + + +class RingPatternSchema(BaseModel): + name: Name + atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids") + """ + array of objects containing integer id each + """ + isAromatic: Optional[bool] = None diff --git a/dist/py/properties_directory/structural/patterns/special_bond.py b/dist/py/properties_directory/structural/patterns/special_bond.py new file mode 100644 index 000000000..c5758f0ac --- /dev/null +++ b/dist/py/properties_directory/structural/patterns/special_bond.py @@ -0,0 +1,33 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/patterns/special_bond.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class Name(Enum): + special_bond = "special_bond" + + +class ObjectWithId(BaseModel): + isConnector: Optional[bool] = None + """ + whether atom connects to atoms outside of functional group. + """ + id: int + """ + integer id of this entry + """ + + +class SpecialBondPatternSchema(BaseModel): + name: Name + atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids") + """ + array of objects containing integer id each + """ diff --git a/dist/py/properties_directory/structural/symmetry.py b/dist/py/properties_directory/structural/symmetry.py new file mode 100644 index 000000000..1474e02ec --- /dev/null +++ b/dist/py/properties_directory/structural/symmetry.py @@ -0,0 +1,39 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/symmetry.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field + + +class Units(Enum): + angstrom = "angstrom" + + +class ScalarSchema(BaseModel): + units: Optional[Units] = None + value: float + + +class Name(Enum): + symmetry = "symmetry" + + +class SymmetrySchema(BaseModel): + pointGroupSymbol: Optional[str] = None + """ + point group symbol in Schoenflies notation + """ + spaceGroupSymbol: Optional[str] = None + """ + space group symbol in Hermann–Mauguin notation + """ + tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + tolerance used for symmetry calculation + """ + name: Optional[Name] = None diff --git a/dist/py/properties_directory/structural/volume.py b/dist/py/properties_directory/structural/volume.py new file mode 100644 index 000000000..05630d885 --- /dev/null +++ b/dist/py/properties_directory/structural/volume.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: properties_directory/structural/volume.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel + + +class Name(Enum): + volume = "volume" + + +class Units(Enum): + angstrom_3 = "angstrom^3" + + +class VolumeSchema(BaseModel): + name: Optional[Name] = None + units: Optional[Units] = None + value: float diff --git a/dist/py/properties_directory/workflow/convergence/__init__.py b/dist/py/properties_directory/workflow/convergence/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/properties_directory/workflow/convergence/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/properties_directory/workflow/convergence/electronic.py b/dist/py/properties_directory/workflow/convergence/electronic.py new file mode 100644 index 000000000..b7a56ec14 --- /dev/null +++ b/dist/py/properties_directory/workflow/convergence/electronic.py @@ -0,0 +1,26 @@ +# generated by datamodel-codegen: +# filename: properties_directory/workflow/convergence/electronic.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List + +from pydantic import BaseModel + + +class Name(Enum): + convergence_electronic = "convergence_electronic" + + +class Units(Enum): + eV = "eV" + Ry = "Ry" + hartree = "hartree" + + +class ConvergenceElectronicPropertySchema(BaseModel): + name: Name + units: Units + data: List[List[float]] diff --git a/dist/py/properties_directory/workflow/convergence/ionic.py b/dist/py/properties_directory/workflow/convergence/ionic.py new file mode 100644 index 000000000..feeef6e64 --- /dev/null +++ b/dist/py/properties_directory/workflow/convergence/ionic.py @@ -0,0 +1,63 @@ +# generated by datamodel-codegen: +# filename: properties_directory/workflow/convergence/ionic.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel + + +class Name(Enum): + convergence_ionic = "convergence_ionic" + + +class Units(Enum): + eV = "eV" + + +class Units245(Enum): + eV = "eV" + Ry = "Ry" + hartree = "hartree" + + +class Electronic(BaseModel): + units: Optional[Units245] = None + """ + units for force tolerance + """ + data: Optional[List[float]] = None + + +class Datum(BaseModel): + energy: float + """ + converged electronic energy for this structure (last in `electronic`) + """ + structure: Optional[Dict[str, Any]] = None + """ + TODO: structural information at each step to be here + """ + electronic: Optional[Electronic] = None + """ + data about electronic at this ionic step + """ + + +class ConvergenceIonicPropertySchema(BaseModel): + name: Name + tolerance: Optional[Any] = None + """ + for ionic convergence tolerance shows force tolerance + """ + units: Units + """ + units for force tolerance + """ + data: List[Datum] + """ + energetic and structural information + """ diff --git a/dist/py/properties_directory/workflow/convergence/kpoint.py b/dist/py/properties_directory/workflow/convergence/kpoint.py new file mode 100644 index 000000000..d34e2a251 --- /dev/null +++ b/dist/py/properties_directory/workflow/convergence/kpoint.py @@ -0,0 +1,43 @@ +# generated by datamodel-codegen: +# filename: properties_directory/workflow/convergence/kpoint.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel + + +class Datum(BaseModel): + value: Any + """ + value of the property at this step + """ + grid: Dict[str, Any] + """ + information about the kpoint grid + """ + spacing: Optional[float] = None + """ + optional kpoint spacing information + """ + + +class ConvergenceSchemaForConvergingAPropertyWrtKpoints(BaseModel): + tolerance: Any + """ + tolerance for the property under investigation + """ + units: str + """ + units for the property under investigation + """ + property: Optional[str] = None + """ + name of the property under investigation + """ + data: List[Datum] + """ + kpoint grid and property information + """ diff --git a/dist/py/property/__init__.py b/dist/py/property/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/property/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/property/holder.py b/dist/py/property/holder.py new file mode 100644 index 000000000..2cc496c0d --- /dev/null +++ b/dist/py/property/holder.py @@ -0,0 +1,3481 @@ +# generated by datamodel-codegen: +# filename: property/holder.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, RootModel, conint, constr + + +class Name(Enum): + valence_band_offset = "valence_band_offset" + + +class Units(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units192(Enum): + eV_A_2 = "eV/A^2" + + +class ValenceBandOffsetPropertySchema(BaseModel): + name: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + units: Union[Units, Units192] + value: float + + +class Name477(Enum): + zero_point_energy = "zero_point_energy" + + +class Units193(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units194(Enum): + eV_A_2 = "eV/A^2" + + +class ZeroPointEnergyPropertySchema(BaseModel): + name: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + units: Union[Units193, Units194] + value: float + + +class Name478(Enum): + pressure = "pressure" + + +class Units195(Enum): + kbar = "kbar" + pa = "pa" + + +class PressurePropertySchema(BaseModel): + name: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + units: Units195 + value: float + + +class Name479(Enum): + reaction_energy_barrier = "reaction_energy_barrier" + + +class Units196(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units197(Enum): + eV_A_2 = "eV/A^2" + + +class ReactionEnergyBarrierPropertySchema(BaseModel): + name: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + units: Union[Units196, Units197] + value: float + + +class Name480(Enum): + surface_energy = "surface_energy" + + +class Units198(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units199(Enum): + eV_A_2 = "eV/A^2" + + +class SurfaceEnergyPropertySchema(BaseModel): + name: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + units: Union[Units198, Units199] + value: float + + +class Name481(Enum): + total_energy = "total_energy" + + +class Units200(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units201(Enum): + eV_A_2 = "eV/A^2" + + +class TotalEnergyPropertySchema(BaseModel): + name: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + units: Union[Units200, Units201] + value: float + + +class Name482(Enum): + total_force = "total_force" + + +class Units202(Enum): + eV_bohr = "eV/bohr" + eV_angstrom = "eV/angstrom" + Ry_a_u_ = "Ry/a.u." + newton = "newton" + kg_m_s_2 = "kg*m/s^2" + eV_a_u_ = "eV/a.u." + + +class TotalForcesPropertySchema(BaseModel): + name: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + units: Units202 + value: float + + +class Name483(Enum): + fermi_energy = "fermi_energy" + + +class Units203(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units204(Enum): + eV_A_2 = "eV/A^2" + + +class FermiEnergyPropertySchema(BaseModel): + name: Literal["7#-datamodel-code-generator-#-object-#-special-#"] + units: Union[Units203, Units204] + value: float + + +class Name484(Enum): + ionization_potential = "ionization_potential" + + +class Units205(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class Units206(Enum): + eV_A_2 = "eV/A^2" + + +class IonizationPotentialScalarPropertySchema(BaseModel): + name: Literal["8#-datamodel-code-generator-#-object-#-special-#"] + units: Union[Units205, Units206] + value: float + + +class ArrayOf3NumberElementsSchema(RootModel[List[float]]): + root: List[float] = Field(..., title="array of 3 number elements schema") + + +class Name485(Enum): + stress_tensor = "stress_tensor" + + +class Units207(Enum): + kbar = "kbar" + pa = "pa" + + +class StressTensorPropertySchema(BaseModel): + value: List[ArrayOf3NumberElementsSchema] = Field(..., max_length=3, min_length=3, title="matrix 3x3 schema") + name: Literal["9#-datamodel-code-generator-#-object-#-special-#"] + units: Units207 + + +class Name486(Enum): + band_gaps = "band_gaps" + + +class Type(Enum): + direct = "direct" + indirect = "indirect" + + +class Units208(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class BandGapSchema(BaseModel): + kpointConduction: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema") + """ + A k-point is a point in reciprocal space of a crystal. + """ + kpointValence: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema") + """ + A k-point is a point in reciprocal space of a crystal. + """ + eigenvalueConduction: Optional[float] = None + """ + eigenvalue at k-point in conduction band + """ + eigenvalueValence: Optional[float] = None + """ + eigenvalue at k-point in valence band + """ + spin: Optional[float] = None + type: Type + units: Optional[Units208] = None + value: float + + +class Eigenvalue(BaseModel): + spin: Optional[float] = None + energies: Optional[List] = None + occupations: Optional[List] = None + + +class Eigenvalue2(BaseModel): + kpoint: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema") + """ + A k-point is a point in reciprocal space of a crystal. + """ + weight: Optional[float] = None + eigenvalues: Optional[List[Eigenvalue]] = None + + +class BandGapsPropertySchema(BaseModel): + name: Literal["10#-datamodel-code-generator-#-object-#-special-#"] + values: List[BandGapSchema] + eigenvalues: Optional[List[Eigenvalue2]] = None + + +class Label(Enum): + kpoints = "kpoints" + + +class Units209(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AxisSchema(BaseModel): + label: Label + """ + label of an axis object + """ + units: Optional[Units209] = "crystal" + """ + units for an axis + """ + + +class Label9(Enum): + energy = "energy" + + +class Units210(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class AxisSchema12(BaseModel): + label: Label9 + """ + label of an axis object + """ + units: Optional[Units210] = None + """ + units for an axis + """ + + +class Name487(Enum): + band_structure = "band_structure" + + +class SpinEnum(Enum): + number_0_5 = 0.5 + number__0_5 = -0.5 + + +class BandStructurePropertySchema(BaseModel): + xAxis: AxisSchema = Field(..., title="axis schema") + yAxis: AxisSchema12 = Field(..., title="axis schema") + name: Literal["11#-datamodel-code-generator-#-object-#-special-#"] + spin: List[SpinEnum] + """ + spin of each band + """ + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") + + +class Label10(Enum): + qpoints = "qpoints" + + +class Units211(Enum): + crystal = "crystal" + cartesian = "cartesian" + + +class AxisSchema13(BaseModel): + label: Label10 + """ + label of an axis object + """ + units: Optional[Units211] = "crystal" + """ + units for an axis + """ + + +class Label11(Enum): + frequency = "frequency" + + +class Units212(Enum): + cm_1 = "cm-1" + THz = "THz" + meV = "meV" + + +class AxisSchema14(BaseModel): + label: Label11 + """ + label of an axis object + """ + units: Optional[Units212] = None + """ + units for an axis + """ + + +class Name488(Enum): + phonon_dispersions = "phonon_dispersions" + + +class PhononBandStructurePropertySchema(BaseModel): + xAxis: AxisSchema13 = Field(..., title="axis schema") + yAxis: AxisSchema14 = Field(..., title="axis schema") + name: Literal["12#-datamodel-code-generator-#-object-#-special-#"] + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") + + +class Name489(Enum): + temperature_entropy = "temperature_entropy" + + +class ScalarSchema(BaseModel): + name: Optional[Name489] = None + value: float + + +class Name490(Enum): + harris_foulkes = "harris_foulkes" + + +class ScalarSchema58(BaseModel): + name: Optional[Name490] = None + value: float + + +class Name491(Enum): + smearing = "smearing" + + +class ScalarSchema59(BaseModel): + name: Optional[Name491] = None + value: float + + +class Name492(Enum): + one_electron = "one_electron" + + +class ScalarSchema60(BaseModel): + name: Optional[Name492] = None + value: float + + +class Name493(Enum): + hartree = "hartree" + + +class ScalarSchema61(BaseModel): + name: Optional[Name493] = None + value: float + + +class Name494(Enum): + exchange = "exchange" + + +class ScalarSchema62(BaseModel): + name: Optional[Name494] = None + value: float + + +class Name495(Enum): + exchange_correlation = "exchange_correlation" + + +class ScalarSchema63(BaseModel): + name: Optional[Name495] = None + value: float + + +class Name496(Enum): + ewald = "ewald" + + +class ScalarSchema64(BaseModel): + name: Optional[Name496] = None + value: float + + +class Name497(Enum): + alphaZ = "alphaZ" + + +class ScalarSchema65(BaseModel): + name: Optional[Name497] = None + value: float + + +class Name498(Enum): + atomic_energy = "atomic_energy" + + +class ScalarSchema66(BaseModel): + name: Optional[Name498] = None + value: float + + +class Name499(Enum): + eigenvalues = "eigenvalues" + + +class ScalarSchema67(BaseModel): + name: Optional[Name499] = None + value: float + + +class Name500(Enum): + PAW_double_counting_correction_2 = "PAW_double-counting_correction_2" + + +class ScalarSchema68(BaseModel): + name: Optional[Name500] = None + value: float + + +class Name501(Enum): + PAW_double_counting_correction_3 = "PAW_double-counting_correction_3" + + +class ScalarSchema69(BaseModel): + name: Optional[Name501] = None + value: float + + +class Name502(Enum): + hartree_fock = "hartree_fock" + + +class ScalarSchema70(BaseModel): + name: Optional[Name502] = None + value: float + + +class Name503(Enum): + total_energy_contributions = "total_energy_contributions" + + +class Units213(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class TotalEnergyContributionsPropertySchema(BaseModel): + temperatureEntropy: Optional[ScalarSchema] = Field(None, title="scalar schema") + """ + product of temperature and configurational entropy + """ + harris_foulkes: Optional[ScalarSchema58] = Field(None, title="scalar schema") + """ + non self-consitent energy based on an input charge density + """ + smearing: Optional[ScalarSchema59] = Field(None, title="scalar schema") + """ + smearing energy + """ + one_electron: Optional[ScalarSchema60] = Field(None, title="scalar schema") + """ + kinetic + pseudopotential energy + """ + hartree: Optional[ScalarSchema61] = Field(None, title="scalar schema") + """ + energy due to coulomb potential + """ + exchange: Optional[ScalarSchema62] = Field(None, title="scalar schema") + """ + exchange energy + """ + exchange_correlation: Optional[ScalarSchema63] = Field(None, title="scalar schema") + """ + exchange and correlation energy per particle + """ + ewald: Optional[ScalarSchema64] = Field(None, title="scalar schema") + """ + summation of interaction energies at long length scales due to coloumbic interactions + """ + alphaZ: Optional[ScalarSchema65] = Field(None, title="scalar schema") + """ + divergent electrostatic ion interaction in compensating electron gas + """ + atomicEnergy: Optional[ScalarSchema66] = Field(None, title="scalar schema") + """ + kinetic energy of wavefunctions in the atomic limit + """ + eigenvalues: Optional[ScalarSchema67] = Field(None, title="scalar schema") + """ + sum of one electron energies of kinetic, electrostatic, and exchange correlation + """ + PAWDoubleCounting2: Optional[ScalarSchema68] = Field(None, title="scalar schema") + """ + double counting correction 2 + """ + PAWDoubleCounting3: Optional[ScalarSchema69] = Field(None, title="scalar schema") + """ + double counting correction 3 + """ + hartreeFock: Optional[ScalarSchema70] = Field(None, title="scalar schema") + """ + hartree-fock contribution + """ + name: Literal["13#-datamodel-code-generator-#-object-#-special-#"] + units: Optional[Units213] = None + + +class Units214(Enum): + cm_1 = "cm-1" + THz = "THz" + meV = "meV" + + +class AxisSchema15(BaseModel): + label: Label11 + """ + label of an axis object + """ + units: Optional[Units214] = None + """ + units for an axis + """ + + +class Label13(Enum): + Phonon_DOS = "Phonon DOS" + + +class Units215(Enum): + states_cm_1 = "states/cm-1" + states_THz = "states/THz" + states_meV = "states/meV" + + +class AxisSchema16(BaseModel): + label: Label13 + """ + label of an axis object + """ + units: Optional[Units215] = None + """ + units for an axis + """ + + +class Name504(Enum): + phonon_dos = "phonon_dos" + + +class PhononDensityOfStatesPropertySchema(BaseModel): + xAxis: AxisSchema15 = Field(..., title="axis schema") + yAxis: AxisSchema16 = Field(..., title="axis schema") + name: Literal["14#-datamodel-code-generator-#-object-#-special-#"] + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") + + +class Label14(Enum): + z_coordinate = "z coordinate" + + +class AxisSchema17(BaseModel): + label: Label14 + """ + label of an axis object + """ + units: Optional[str] = None + """ + units for an axis + """ + + +class Label15(Enum): + energy = "energy" + + +class Units216(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class AxisSchema18(BaseModel): + label: Label15 + """ + label of an axis object + """ + units: Optional[Units216] = None + """ + units for an axis + """ + + +class Name505(Enum): + potential_profile = "potential_profile" + + +class PotentialProfilePropertySchema(BaseModel): + xAxis: AxisSchema17 = Field(..., title="axis schema") + yAxis: AxisSchema18 = Field(..., title="axis schema") + name: Literal["15#-datamodel-code-generator-#-object-#-special-#"] + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") + + +class Label16(Enum): + reaction_coordinate = "reaction coordinate" + + +class AxisSchema19(BaseModel): + label: Label16 + """ + label of an axis object + """ + units: Optional[str] = None + """ + units for an axis + """ + + +class Label17(Enum): + energy = "energy" + + +class AxisSchema20(BaseModel): + label: Label17 + """ + label of an axis object + """ + units: Optional[Units216] = None + """ + units for an axis + """ + + +class Name506(Enum): + reaction_energy_profile = "reaction_energy_profile" + + +class ReactionEnergyProfilePropertySchema(BaseModel): + xAxis: AxisSchema19 = Field(..., title="axis schema") + yAxis: AxisSchema20 = Field(..., title="axis schema") + name: Literal["16#-datamodel-code-generator-#-object-#-special-#"] + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") + + +class AxisSchema21(BaseModel): + label: Label17 + """ + label of an axis object + """ + units: Optional[Units216] = None + """ + units for an axis + """ + + +class Label19(Enum): + density_of_states = "density of states" + + +class Units219(Enum): + states_unitcell = "states/unitcell" + + +class AxisSchema22(BaseModel): + label: Label19 + """ + label of an axis object + """ + units: Optional[Units219] = None + """ + units for an axis + """ + + +class Name507(Enum): + density_of_states = "density_of_states" + + +class Spin(Enum): + number_0_5 = 0.5 + number__0_5 = -0.5 + + +class LegendItem(BaseModel): + element: Optional[str] = None + """ + chemical element + """ + index: Optional[int] = None + """ + index inside sub-array of atoms of the same element type + """ + electronicState: Optional[constr(pattern=r"^([1-5]{1})?(s|p|d|f|g).*$")] = None + """ + electronic character and shell of PDOS, such as `1s` or `s`, or `total` + """ + spin: Optional[Spin] = None + """ + spin of the electronic state + """ + + +class DensityOfStatesPropertySchema(BaseModel): + xAxis: AxisSchema21 = Field(..., title="axis schema") + yAxis: AxisSchema22 = Field(..., title="axis schema") + name: Literal["17#-datamodel-code-generator-#-object-#-special-#"] + legend: List[LegendItem] + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") + + +class Name508(Enum): + dielectric_tensor = "dielectric_tensor" + + +class Part(Enum): + real = "real" + imaginary = "imaginary" + + +class DielectricTensor(BaseModel): + part: Part + """ + Real or imaginary part of the dielectric tensor component + """ + spin: Optional[float] = None + frequencies: List[float] + """ + Frequencies + """ + components: List[List[float]] + """ + Matrix with 3 columns, e.g. x, y, z + """ + + +class DielectricTensorPropertySchema(BaseModel): + name: Literal["18#-datamodel-code-generator-#-object-#-special-#"] + values: List[DielectricTensor] + + +class Name509(Enum): + file_content = "file_content" + + +class Filetype(Enum): + image = "image" + text = "text" + csv = "csv" + + +class ObjectStorageContainerData(BaseModel): + CONTAINER: Optional[str] = None + """ + Object storage container for the file + """ + NAME: Optional[str] = None + """ + Name of the file inside the object storage bucket + """ + PROVIDER: Optional[str] = None + """ + Object storage provider + """ + REGION: Optional[str] = None + """ + Region for the object container specified in Container + """ + SIZE: Optional[int] = None + """ + Size of the file in bytes + """ + TIMESTAMP: Optional[str] = None + """ + Unix timestamp showing when the file was last modified + """ + + +class FileContentPropertySchema(BaseModel): + name: Literal["19#-datamodel-code-generator-#-object-#-special-#"] + filetype: Filetype + """ + What kind of file this is, e.g. image / text + """ + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + + +class Name510(Enum): + hubbard_u = "hubbard_u" + + +class Units220(Enum): + eV = "eV" + + +class AtomicDataPerOrbitalNumeric(BaseModel): + id: int + """ + Site number or index in the lattice + """ + atomicSpecies: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$") + """ + Example: Co1, Mn + """ + orbitalName: constr(pattern=r"^[1-7][sSpPdDfF]$") + value: float + """ + Value related to a specific property, e.g., Hubbard U, V etc. + """ + + +class HubbardUParametersPropertySchema(BaseModel): + name: Literal["20#-datamodel-code-generator-#-object-#-special-#"] + units: Units220 + values: List[AtomicDataPerOrbitalNumeric] + + +class Name511(Enum): + hubbard_v = "hubbard_v" + + +class AtomicDataPerOrbitalPairNumeric(BaseModel): + id: int + """ + Site number or index in the lattice + """ + id2: int + """ + Site number or index in the lattice of second site + """ + atomicSpecies: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$") + """ + Example: Co1, Mn + """ + atomicSpecies2: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$") + """ + Example: Co2, O + """ + orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + orbitalName2: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + distance: Optional[float] = None + """ + Distance between two sites in Bohr. + """ + value: float + """ + Value related to a specific property, e.g., Hubbard U, V etc. + """ + + +class HubbardVParametersPropertySchema(BaseModel): + name: Literal["21#-datamodel-code-generator-#-object-#-special-#"] + units: Units220 + values: List[AtomicDataPerOrbitalPairNumeric] + + +class Name512(Enum): + hubbard_v_nn = "hubbard_v_nn" + + +class HubbardVNNParametersPropertySchema(BaseModel): + name: Literal["22#-datamodel-code-generator-#-object-#-special-#"] + units: Units220 + values: List[AtomicDataPerOrbitalPairNumeric] + + +class Label20(Enum): + z_coordinate = "z coordinate" + + +class Units223(Enum): + km = "km" + m = "m" + cm = "cm" + mm = "mm" + um = "um" + nm = "nm" + angstrom = "angstrom" + a_u_ = "a.u." + bohr = "bohr" + pm = "pm" + + +class AxisSchema23(BaseModel): + label: Label20 + """ + label of an axis object + """ + units: Optional[Units223] = None + """ + units for an axis + """ + + +class Label21(Enum): + energy = "energy" + + +class Units224(Enum): + kJ_mol = "kJ/mol" + eV = "eV" + J_mol = "J/mol" + hartree = "hartree" + cm_1 = "cm-1" + Ry = "Ry" + eV_atom = "eV/atom" + + +class AxisSchema24(BaseModel): + label: Label21 + """ + label of an axis object + """ + units: Optional[Units224] = None + """ + units for an axis + """ + + +class Name513(Enum): + average_potential_profile = "average_potential_profile" + + +class AveragePotentialProfilePropertySchema(BaseModel): + xAxis: AxisSchema23 = Field(..., title="axis schema") + yAxis: AxisSchema24 = Field(..., title="axis schema") + name: Literal["23#-datamodel-code-generator-#-object-#-special-#"] + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") + + +class Label22(Enum): + z_coordinate = "z coordinate" + + +class AxisSchema25(BaseModel): + label: Label22 + """ + label of an axis object + """ + units: Optional[str] = None + """ + units for an axis + """ + + +class Label23(Enum): + charge_density = "charge density" + + +class Units225(Enum): + e_A = "e/A" + + +class AxisSchema26(BaseModel): + label: Label23 + """ + label of an axis object + """ + units: Optional[Units225] = None + """ + units for an axis + """ + + +class Name514(Enum): + charge_density_profile = "charge_density_profile" + + +class ChargeDensityProfilePropertySchema(BaseModel): + xAxis: AxisSchema25 = Field(..., title="axis schema") + yAxis: AxisSchema26 = Field(..., title="axis schema") + name: Literal["24#-datamodel-code-generator-#-object-#-special-#"] + xDataArray: List[Union[float, List[float]]] + """ + array containing values of x Axis + """ + yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema") + + +class Name515(Enum): + workflow_pyml_predict = "workflow:pyml_predict" + + +class Queue(Enum): + D = "D" + OR = "OR" + OF = "OF" + OFplus = "OFplus" + SR = "SR" + SF = "SF" + SFplus = "SFplus" + GPOF = "GPOF" + GP2OF = "GP2OF" + GP4OF = "GP4OF" + GPSF = "GPSF" + GP2SF = "GP2SF" + GP4SF = "GP4SF" + OR4 = "OR4" + OR8 = "OR8" + OR16 = "OR16" + SR4 = "SR4" + SR8 = "SR8" + SR16 = "SR16" + GOF = "GOF" + G4OF = "G4OF" + G8OF = "G8OF" + GSF = "GSF" + G4SF = "G4SF" + G8SF = "G8SF" + + +class TimeLimitType(Enum): + per_single_attempt = "per single attempt" + compound = "compound" + + +class QuantumEspressoArgumentsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + nimage: Optional[conint(ge=1, le=100)] = 1 + """ + Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. + """ + npools: Optional[conint(ge=1, le=100)] = 1 + """ + Each image can be subpartitioned into `pools`, each taking care of a group of k-points. + """ + nband: Optional[conint(ge=1, le=100)] = 1 + """ + Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). + """ + ntg: Optional[conint(ge=1, le=100)] = 1 + """ + In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. + """ + ndiag: Optional[conint(ge=1, le=100)] = 1 + """ + A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. + """ + + +class Cluster(BaseModel): + fqdn: Optional[str] = None + """ + FQDN of the cluster. e.g. master-1-staging.exabyte.io + """ + jid: Optional[str] = None + """ + Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io + """ + + +class Domain(Enum): + rupy = "rupy" + alfred = "alfred" + celim = "celim" + webapp = "webapp" + + +class Error(BaseModel): + domain: Optional[Domain] = None + """ + Domain of the error appearance (internal). + """ + reason: Optional[str] = None + """ + Should be a short, unique, machine-readable error code string. e.g. FileNotFound + """ + message: Optional[str] = None + """ + Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' + """ + traceback: Optional[str] = None + """ + Full machine-readable error traceback. e.g. FileNotFound + """ + + +class ComputeArgumentsSchema(BaseModel): + queue: Queue + """ + Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. + """ + nodes: int + """ + number of nodes used for the job inside the RMS. + """ + ppn: int + """ + number of CPUs used for the job inside the RMS. + """ + timeLimit: str + """ + Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' + """ + timeLimitType: Optional[TimeLimitType] = "per single attempt" + """ + Convention to use when reasoning about time limits + """ + isRestartable: Optional[bool] = True + """ + Job is allowed to restart on termination. + """ + notify: Optional[str] = None + """ + Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. + """ + email: Optional[str] = None + """ + Email address to notify about job execution. + """ + maxCPU: Optional[int] = None + """ + Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. + """ + arguments: Optional[QuantumEspressoArgumentsSchema] = Field({}, title="quantum espresso arguments schema") + """ + Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + """ + cluster: Optional[Cluster] = None + """ + Cluster where the job is executed. Optional on create. Required on job submission. + """ + errors: Optional[List[Error]] = None + """ + Computation error. Optional. Appears only if something happens on jobs execution. + """ + excludeFilesPattern: Optional[str] = None + """ + A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + """ + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class Subtype(Enum): + input = "input" + output = "output" + dataFrame = "dataFrame" + + +class Source(Enum): + api = "api" + db = "db" + object_storage = "object_storage" + + +class DataIODatabaseIdsInputOutputSchema(BaseModel): + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + ids: List[str] + """ + IDs of item to retrieve from db + """ + + +class DataIODatabaseCollectionInputOutputSchema(BaseModel): + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + collection: str + """ + db collection name + """ + draft: bool + """ + whether the result should be saved as draft + """ + + +class ObjectStorageIoSchema(BaseModel): + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + overwrite: Optional[bool] = None + """ + if a file with the same filename already exists, whether to overwrite the old file + """ + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + filetype: Optional[str] = None + """ + What kind of file this is, e.g. image / text + """ + + +class Input( + RootModel[ + Union[DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema] + ] +): + root: Union[ + DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema + ] = Field(..., discriminator="type") + + +class DataIOUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + subtype: Subtype + source: Source + input: List[Input] + + +class InputItem(BaseModel): + operation: str + """ + reduce operation, e.g. aggregate + """ + arguments: List[str] + """ + arguments which are passed to reduce operation function + """ + + +class ReduceUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + mapFlowchartId: str + """ + corresponding map unit flowchart ID + """ + input: List[InputItem] + """ + input information for reduce unit + """ + + +class WorkflowUnitInputSchema(BaseModel): + scope: str + """ + Scope of the variable. e.g. 'global' or 'flowchart_id_2' + """ + name: str + """ + Name of the input data. e.g. total_energy + """ + + +class ConditionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + input: List[WorkflowUnitInputSchema] + """ + Input information for condition. + """ + statement: str + """ + Condition statement. e.g. 'abs(x-total_energy) < 1e-5' + """ + then: str + """ + Flowchart ID reference for `then` part of the condition. + """ + else_: str = Field(..., alias="else") + """ + Flowchart ID reference for `else` part of the condition. + """ + maxOccurrences: int + """ + Maximum occurrence of the condition, usable for loops. + """ + throwException: Optional[bool] = None + """ + Throw exception on reaching to maximum occurence. + """ + + +class AssertionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + statement: str + """ + The statement to be evaluated + """ + errorMessage: Optional[str] = None + """ + The error message to be displayed if the assertion fails + """ + + +class ApplicationSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + summary: str + """ + Application's short description. + """ + version: str + """ + Application version. e.g. 5.3.5 + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ + + +class ExecutableSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class FlavorSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ + + +class TemplateSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema(BaseModel): + template: TemplateSchema = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class ContextItem(BaseModel): + name: str + isEdited: bool + data: Dict[str, Any] + extraData: Optional[Dict[str, Any]] = None + + +class ExecutionUnitSchemaBase(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + application: ApplicationSchema = Field(..., title="application schema") + executable: Optional[ExecutableSchema] = Field(None, title="executable schema") + flavor: Optional[FlavorSchema] = Field(None, title="flavor schema") + input: List[ExecutionUnitInputItemSchema] + context: Optional[List[ContextItem]] = None + + +class AssignmentUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + scope: Optional[str] = None + input: List[WorkflowUnitInputSchema] + """ + Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + """ + operand: str + """ + Name of the global variable. e.g. 'x' + """ + value: Union[str, bool, float] + """ + Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + """ + + +class ProcessingUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + operation: str + """ + Contains information about the operation used. + """ + operationType: str + """ + Contains information about the specific type of the operation used. + """ + inputData: Any + """ + unit input (type to be specified by the child units) + """ + + +class WorkflowSubworkflowUnitSchema( + RootModel[ + Union[ + DataIOUnitSchema, + ReduceUnitSchema, + ConditionUnitSchema, + AssertionUnitSchema, + ExecutionUnitSchemaBase, + AssignmentUnitSchema, + ProcessingUnitSchema, + ] + ] +): + root: Union[ + DataIOUnitSchema, + ReduceUnitSchema, + ConditionUnitSchema, + AssertionUnitSchema, + ExecutionUnitSchemaBase, + AssignmentUnitSchema, + ProcessingUnitSchema, + ] = Field(..., discriminator="type", title="workflow subworkflow unit schema") + + +class BaseMethod(BaseModel): + type: str + """ + general type of this method, eg. `pseudopotential` + """ + subtype: str + """ + general subtype of this method, eg. `ultra-soft` + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + data: Optional[Dict[str, Any]] = None + """ + additional data specific to method, eg. array of pseudopotentials + """ + + +class BaseModelModel(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + type: str + """ + general type of the model, eg. `dft` + """ + subtype: str + """ + general subtype of the model, eg. `lda` + """ + method: BaseMethod = Field(..., title="base method") + + +class SubworkflowSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + properties: Optional[List[str]] = None + """ + Array of characteristic properties calculated by this subworkflow + """ + compute: Optional[ComputeArgumentsSchema] = Field(None, title="compute arguments schema") + """ + Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + """ + units: List[WorkflowSubworkflowUnitSchema] + """ + Contains the Units of the subworkflow + """ + model: BaseModelModel = Field(..., title="base model") + application: ApplicationSchema = Field(..., title="application schema") + isDraft: Optional[bool] = False + """ + Defines whether to store the results/properties extracted in this unit to properties collection + """ + + +class ObjectStorageIoSchema1(BaseModel): + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + overwrite: Optional[bool] = None + """ + if a file with the same filename already exists, whether to overwrite the old file + """ + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + filetype: Optional[str] = None + """ + What kind of file this is, e.g. image / text + """ + + +class Input1( + RootModel[ + Union[DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema1] + ] +): + root: Union[ + DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema1 + ] = Field(..., discriminator="type") + + +class DataIOUnitSchema1(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + subtype: Subtype + source: Source + input: List[Input1] + + +class ReduceUnitSchema1(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + mapFlowchartId: str + """ + corresponding map unit flowchart ID + """ + input: List[InputItem] + """ + input information for reduce unit + """ + + +class ConditionUnitSchema2(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + input: List[WorkflowUnitInputSchema] + """ + Input information for condition. + """ + statement: str + """ + Condition statement. e.g. 'abs(x-total_energy) < 1e-5' + """ + then: str + """ + Flowchart ID reference for `then` part of the condition. + """ + else_: str = Field(..., alias="else") + """ + Flowchart ID reference for `else` part of the condition. + """ + maxOccurrences: int + """ + Maximum occurrence of the condition, usable for loops. + """ + throwException: Optional[bool] = None + """ + Throw exception on reaching to maximum occurence. + """ + + +class AssertionUnitSchema2(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + statement: str + """ + The statement to be evaluated + """ + errorMessage: Optional[str] = None + """ + The error message to be displayed if the assertion fails + """ + + +class ExecutableSchema6(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + + +class FlavorSchema6(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ + + +class TemplateSchema9(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema7(BaseModel): + template: TemplateSchema9 = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class ExecutionUnitSchemaBase2(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + application: ApplicationSchema = Field(..., title="application schema") + executable: Optional[ExecutableSchema6] = Field(None, title="executable schema") + flavor: Optional[FlavorSchema6] = Field(None, title="flavor schema") + input: List[ExecutionUnitInputItemSchema7] + context: Optional[List[ContextItem]] = None + + +class AssignmentUnitSchema2(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + scope: Optional[str] = None + input: List[WorkflowUnitInputSchema] + """ + Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + """ + operand: str + """ + Name of the global variable. e.g. 'x' + """ + value: Union[str, bool, float] + """ + Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + """ + + +class ProcessingUnitSchema1(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + operation: str + """ + Contains information about the operation used. + """ + operationType: str + """ + Contains information about the specific type of the operation used. + """ + inputData: Any + """ + unit input (type to be specified by the child units) + """ + + +class Input2(BaseModel): + target: str + """ + Name of the target variable to substitute using the values below. e.g. K_POINTS + """ + scope: Optional[str] = None + """ + Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given. + """ + name: Optional[str] = None + """ + Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given. + """ + values: Optional[List[Union[str, float, Dict[str, Any]]]] = None + """ + Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution + """ + useValues: Optional[bool] = None + + +class MapUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["7#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + workflowId: str + """ + Id of workflow to run inside map + """ + input: Input2 + """ + Input information for map. + """ + + +class SubworkflowUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["8#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + + +class WorkflowUnitSchema( + RootModel[ + Union[ + DataIOUnitSchema1, + ReduceUnitSchema1, + ConditionUnitSchema2, + AssertionUnitSchema2, + ExecutionUnitSchemaBase2, + AssignmentUnitSchema2, + ProcessingUnitSchema1, + MapUnitSchema, + SubworkflowUnitSchema, + ] + ] +): + root: Union[ + DataIOUnitSchema1, + ReduceUnitSchema1, + ConditionUnitSchema2, + AssertionUnitSchema2, + ExecutionUnitSchemaBase2, + AssignmentUnitSchema2, + ProcessingUnitSchema1, + MapUnitSchema, + SubworkflowUnitSchema, + ] = Field(..., discriminator="type", title="workflow unit schema") + + +class WorkflowPropertySchema(BaseModel): + name: Literal["25#-datamodel-code-generator-#-object-#-special-#"] + """ + entity name + """ + subworkflows: List[SubworkflowSchema] + """ + Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting + """ + units: List[WorkflowUnitSchema] + """ + Contains the Units of the Workflow + """ + properties: Optional[List[Union[str, Dict[str, Any]]]] = None + """ + Array of characteristic properties calculated by this workflow (TODO: add enums) + """ + isUsingDataset: Optional[bool] = None + """ + Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab. + """ + workflows: Optional[List[Dict[str, Any]]] = None + """ + Array of workflows with the same schema as the current one. + """ + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + metadata: Optional[Dict[str, Any]] = None + + +class Name516(Enum): + magnetic_moments = "magnetic_moments" + + +class AtomicVectorSchema(BaseModel): + value: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class Units226(Enum): + uB = "uB" + + +class MagneticMomentsPropertySchema(BaseModel): + name: Literal["26#-datamodel-code-generator-#-object-#-special-#"] + values: List[AtomicVectorSchema] = Field(..., title="atomic vectors schema") + units: Units226 + + +class Name517(Enum): + atomic_forces = "atomic_forces" + + +class Units227(Enum): + eV_bohr = "eV/bohr" + eV_angstrom = "eV/angstrom" + Ry_a_u_ = "Ry/a.u." + newton = "newton" + kg_m_s_2 = "kg*m/s^2" + eV_a_u_ = "eV/a.u." + + +class AtomicForcesPropertySchema(BaseModel): + name: Literal["27#-datamodel-code-generator-#-object-#-special-#"] + values: List[AtomicVectorSchema] = Field(..., title="atomic vectors schema") + units: Units227 + + +class Name518(Enum): + convergence_electronic = "convergence_electronic" + + +class Units228(Enum): + eV = "eV" + Ry = "Ry" + hartree = "hartree" + + +class ConvergenceElectronicPropertySchema(BaseModel): + name: Literal["28#-datamodel-code-generator-#-object-#-special-#"] + units: Units228 + data: List[List[float]] + + +class Name519(Enum): + convergence_ionic = "convergence_ionic" + + +class Units229(Enum): + eV = "eV" + + +class Units230(Enum): + eV = "eV" + Ry = "Ry" + hartree = "hartree" + + +class Electronic(BaseModel): + units: Optional[Units230] = None + """ + units for force tolerance + """ + data: Optional[List[float]] = None + + +class Datum(BaseModel): + energy: float + """ + converged electronic energy for this structure (last in `electronic`) + """ + structure: Optional[Dict[str, Any]] = None + """ + TODO: structural information at each step to be here + """ + electronic: Optional[Electronic] = None + """ + data about electronic at this ionic step + """ + + +class ConvergenceIonicPropertySchema(BaseModel): + name: Literal["29#-datamodel-code-generator-#-object-#-special-#"] + tolerance: Optional[Any] = None + """ + for ionic convergence tolerance shows force tolerance + """ + units: Units229 + """ + units for force tolerance + """ + data: List[Datum] + """ + energetic and structural information + """ + + +class Name520(Enum): + is_relaxed = "is_relaxed" + + +class IsRelaxedPropertySchema(BaseModel): + name: Literal["30#-datamodel-code-generator-#-object-#-special-#"] + value: bool + materialId: str + """ + Material's identity + """ + + +class Name521(Enum): + final_structure = "final_structure" + + +class FinalStructurePropertySchema(BaseModel): + name: Literal["31#-datamodel-code-generator-#-object-#-special-#"] + isRelaxed: bool + materialId: str + """ + Material's identity + """ + + +class Name522(Enum): + jupyter_notebook_endpoint = "jupyter_notebook_endpoint" + + +class JupyterNotebookEndpointPropertySchema(BaseModel): + name: Literal["32#-datamodel-code-generator-#-object-#-special-#"] + host: str + port: float + token: str + + +class Info(BaseModel): + jobId: str + """ + Job's identity + """ + unitId: str + """ + Id of the unit that extracted the result + """ + + +class Source58(BaseModel): + type: str + """ + Type of the material property's source. + """ + info: Info + + +class Precision(BaseModel): + value: Optional[float] = None + metric: Optional[str] = None + + +class SystemTag(Enum): + isRefined = "isRefined" + isBest = "isBest" + + +class PropertyHolderSchema(BaseModel): + group: Optional[str] = None + """ + property group, e.g. qe:dft:gga:pbe + """ + data: Union[ + ValenceBandOffsetPropertySchema, + ZeroPointEnergyPropertySchema, + PressurePropertySchema, + ReactionEnergyBarrierPropertySchema, + SurfaceEnergyPropertySchema, + TotalEnergyPropertySchema, + TotalForcesPropertySchema, + FermiEnergyPropertySchema, + IonizationPotentialScalarPropertySchema, + StressTensorPropertySchema, + BandGapsPropertySchema, + BandStructurePropertySchema, + PhononBandStructurePropertySchema, + TotalEnergyContributionsPropertySchema, + PhononDensityOfStatesPropertySchema, + PotentialProfilePropertySchema, + ReactionEnergyProfilePropertySchema, + DensityOfStatesPropertySchema, + DielectricTensorPropertySchema, + FileContentPropertySchema, + HubbardUParametersPropertySchema, + HubbardVParametersPropertySchema, + HubbardVNNParametersPropertySchema, + AveragePotentialProfilePropertySchema, + ChargeDensityProfilePropertySchema, + WorkflowPropertySchema, + MagneticMomentsPropertySchema, + AtomicForcesPropertySchema, + ConvergenceElectronicPropertySchema, + ConvergenceIonicPropertySchema, + IsRelaxedPropertySchema, + FinalStructurePropertySchema, + JupyterNotebookEndpointPropertySchema, + ] = Field(..., discriminator="name") + """ + container of the information, specific to each property + """ + source: Source58 + exabyteId: List[str] + """ + Id of the corresponding item in the entity bank that this property is obtained for + """ + precision: Optional[Precision] = None + systemTags: Optional[List[SystemTag]] = None + """ + property system tags, marks property system characteristics, values refined or best (could be both) + """ + repetition: float + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ diff --git a/dist/py/property/meta_holder.py b/dist/py/property/meta_holder.py new file mode 100644 index 000000000..694807898 --- /dev/null +++ b/dist/py/property/meta_holder.py @@ -0,0 +1,140 @@ +# generated by datamodel-codegen: +# filename: property/meta_holder.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel, ConfigDict, Field, confloat, conint, constr + +from .Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e import ( + g, +) + + +class Type(Enum): + us = "us" + nc = "nc" + nc_fr = "nc-fr" + paw = "paw" + coulomb = "coulomb" + + +class ExchangeCorrelation(BaseModel): + approximation: Optional[str] = None + """ + DFT approximation + """ + functional: Optional[str] = None + """ + Exchange correlation functional + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ + + +class AtomicOrbitalSchema(BaseModel): + orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None + orbitalIndex: Optional[conint(ge=1)] = None + principalNumber: Optional[conint(ge=1, le=7)] = None + angularMomentum: Optional[conint(ge=0, le=3)] = None + occupation: Optional[confloat(ge=0.0, le=14.0)] = None + """ + Shell occupation + """ + + +class Name(Enum): + pseudopotential = "pseudopotential" + + +class Cutoffs(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + wavefunction: Optional[List[g.UsedForSuggestedWavefunctionAndChargeDensityCutoffs]] = None + """ + Energy cutoff values for wavefunction plane wave expansion. + """ + density: Optional[List[g.UsedForSuggestedWavefunctionAndChargeDensityCutoffs]] = None + """ + Energy cutoff values for charge density plane wave expansion. + """ + + +class FileDataItem(BaseModel): + element: str + """ + chemical element + """ + hash: str + """ + MD5 hash of the pseudopotential file + """ + type: Type + source: str + """ + explains where this came from + """ + version: Optional[str] = None + """ + explains the version of where this came from + """ + exchangeCorrelation: ExchangeCorrelation + valenceConfiguration: Optional[List[AtomicOrbitalSchema]] = None + """ + contains pseudo orbital information, including orbital names and occupations + """ + path: str + """ + location of the pseudopotential file on filesystem + """ + apps: List[str] + """ + The names of the simulation engines that can use this pseudopotential, e.g. espresso + """ + filename: Optional[str] = None + """ + filename of pseudopotential file on filesystem + """ + name: Name + """ + name of the data category + """ + cutoffs: Optional[Cutoffs] = None + """ + Suggested cutoff values for wave function and charge density. + """ + + +class Source(BaseModel): + type: str + """ + Type of the material property's source. + """ + info: Optional[Dict[str, Any]] = None + + +class MetaPropertyHolderSchema(BaseModel): + data: FileDataItem + """ + container of the information, specific to each property + """ + source: Source + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ diff --git a/dist/py/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py b/dist/py/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py b/dist/py/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py new file mode 100644 index 000000000..ab6dbd1da --- /dev/null +++ b/dist/py/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py @@ -0,0 +1,31 @@ +# generated by datamodel-codegen: +# filename: property/meta_holder.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class Unit(Enum): + Ry = "Ry" + + +class AccuracyLevel(Enum): + standard = "standard" + low = "low" + high = "high" + + +class UsedForSuggestedWavefunctionAndChargeDensityCutoffs(BaseModel): + unit: Unit + """ + Unit of the energy value corresponding to a accuracy_level. The values are expressed in Ry. + """ + accuracy_level: AccuracyLevel + """ + Accuracy level determines suggested scalar value. + """ + value: float diff --git a/dist/py/property/proto_holder.py b/dist/py/property/proto_holder.py new file mode 100644 index 000000000..75ea2af4c --- /dev/null +++ b/dist/py/property/proto_holder.py @@ -0,0 +1,86 @@ +# generated by datamodel-codegen: +# filename: property/proto_holder.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional, Union + +from pydantic import BaseModel, Field + + +class Name(Enum): + atomic_constraints = "atomic_constraints" + + +class AtomicConstraintSchema(BaseModel): + value: List[bool] = Field(..., title="vector boolean 3d schema") + """ + value of this entry + """ + id: int + """ + integer id of this entry + """ + + +class AtomicConstraintsPropertySchema(BaseModel): + name: Name + values: List[AtomicConstraintSchema] = Field(..., title="atomic constraints schema") + """ + atomic constraints schema + """ + + +class Name635(Enum): + boundary_conditions = "boundary_conditions" + + +class Type(Enum): + pbc = "pbc" + bc1 = "bc1" + bc2 = "bc2" + bc3 = "bc3" + + +class BoundaryConditionsPropertySchema(BaseModel): + name: Name635 + type: Optional[Type] = "pbc" + """ + If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab. + """ + offset: float + + +class Info(BaseModel): + materialId: Optional[str] = None + + +class Source(BaseModel): + type: str + """ + Type of the material property's source. + """ + info: Info + + +class ProtoPropertyHolderSchema(BaseModel): + data: Union[AtomicConstraintsPropertySchema, BoundaryConditionsPropertySchema] + """ + container of the information, specific to each property + """ + source: Source + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ diff --git a/dist/py/property/source.py b/dist/py/property/source.py new file mode 100644 index 000000000..322aecc80 --- /dev/null +++ b/dist/py/property/source.py @@ -0,0 +1,173 @@ +# generated by datamodel-codegen: +# filename: property/source.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field + + +class Info(BaseModel): + jobId: str + """ + Job's identity + """ + unitId: str + """ + Id of the unit that extracted the result + """ + + +class Type(Enum): + experiment = "experiment" + + +class ExperimentAuthorSchema(BaseModel): + first: str + middle: Optional[str] = None + last: str + affiliation: Optional[str] = None + + +class ScalarItem(BaseModel): + value: Optional[str] = None + + +class ConditionSchema(BaseModel): + units: Optional[str] = None + """ + condition unit + """ + scalar: Optional[List[ScalarItem]] = None + """ + array of condition values + """ + name: str + """ + human-readable name of the condition + """ + + +class LocationSchema(BaseModel): + latitude: float + """ + location latitude + """ + longitude: float + """ + location longitude + """ + + +class Type105(Enum): + literature = "literature" + + +class PagesSchema(BaseModel): + start: str + end: Optional[str] = None + + +class LiteratureReferenceSchema(BaseModel): + type: Optional[Type105] = None + doi: Optional[str] = None + """ + Digital Object Identifier of the reference. + """ + isbn: Optional[str] = None + """ + International Standard Book Number of the reference. + """ + issn: Optional[str] = None + """ + International Standard Serial Number of the reference. + """ + url: Optional[str] = None + """ + Internet address of the reference. + """ + title: Optional[str] = None + """ + Title of the work. + """ + publisher: Optional[str] = None + """ + Publisher of the work. + """ + journal: Optional[str] = None + """ + Journal in which the work appeared. + """ + volume: Optional[str] = None + """ + Volume of the series in which the work appeared. + """ + year: Optional[str] = None + """ + Year in which the reference was published. + """ + issue: Optional[str] = None + """ + Issue of the collection in which the work appeared. + """ + pages: Optional[PagesSchema] = Field(None, title="pages schema") + """ + Start and end pages of the work. + """ + authors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of authors of the work. + """ + editors: Optional[List[ExperimentAuthorSchema]] = None + """ + List of editors of the work. + """ + reference: Optional[List[Dict[str, Any]]] = None + """ + References cited by the work. Reference objects can nest as deeply as needed. This is useful, for example, when tracking the history of a value referenced in a scholarly article; the top level reference would contain information about where the data was accessed while the nested reference would contain information about where it was originally published. + """ + + +class InfoForCharacteristicObtainedByExperiment(BaseModel): + type: Optional[Type] = None + authors: List[ExperimentAuthorSchema] + """ + experiment authors + """ + title: str + """ + experiment title + """ + method: str + """ + method used in experiment + """ + conditions: List[ConditionSchema] + location: Optional[LocationSchema] = Field(None, title="location schema") + timestamp: float + """ + epoch time. + """ + note: Optional[str] = None + """ + Note about experiment + """ + references: Optional[List[LiteratureReferenceSchema]] = None + """ + references to literature articles + """ + + +class PropertySourceSchema(BaseModel): + type: Optional[str] = None + """ + Type of the material property's source. + """ + url: Optional[str] = None + """ + Internet address of the reference. + """ + info: Union[Info, InfoForCharacteristicObtainedByExperiment] diff --git a/dist/py/software/__init__.py b/dist/py/software/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/software/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/software/application.py b/dist/py/software/application.py new file mode 100644 index 000000000..d3d6cc5a2 --- /dev/null +++ b/dist/py/software/application.py @@ -0,0 +1,57 @@ +# generated by datamodel-codegen: +# filename: software/application.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, Field + + +class ApplicationSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + summary: str + """ + Application's short description. + """ + version: str + """ + Application version. e.g. 5.3.5 + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ diff --git a/dist/py/software/application_properties.py b/dist/py/software/application_properties.py new file mode 100644 index 000000000..1d9d35e4d --- /dev/null +++ b/dist/py/software/application_properties.py @@ -0,0 +1,36 @@ +# generated by datamodel-codegen: +# filename: software/application_properties.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class ApplicationPropertiesSchema(BaseModel): + shortName: str + """ + The short name of the application. e.g. qe + """ + summary: str + """ + Application's short description. + """ + version: str + """ + Application version. e.g. 5.3.5 + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ diff --git a/dist/py/software/executable.py b/dist/py/software/executable.py new file mode 100644 index 000000000..16ab255c4 --- /dev/null +++ b/dist/py/software/executable.py @@ -0,0 +1,64 @@ +# generated by datamodel-codegen: +# filename: software/executable.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class ExecutableSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ diff --git a/dist/py/software/executable_properties.py b/dist/py/software/executable_properties.py new file mode 100644 index 000000000..241c77ef4 --- /dev/null +++ b/dist/py/software/executable_properties.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: software/executable_properties.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel + + +class ExecutablePropertiesSchema(BaseModel): + name: str + """ + The name of the executable. e.g. pw.x + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ diff --git a/dist/py/software/flavor.py b/dist/py/software/flavor.py new file mode 100644 index 000000000..3eee5e21d --- /dev/null +++ b/dist/py/software/flavor.py @@ -0,0 +1,87 @@ +# generated by datamodel-codegen: +# filename: software/flavor.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel, ConfigDict, Field + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class FlavorSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ diff --git a/dist/py/software/flavor_properties.py b/dist/py/software/flavor_properties.py new file mode 100644 index 000000000..72710d9d2 --- /dev/null +++ b/dist/py/software/flavor_properties.py @@ -0,0 +1,43 @@ +# generated by datamodel-codegen: +# filename: software/flavor_properties.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel, ConfigDict, Field + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class FlavorPropertiesSchema(BaseModel): + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ diff --git a/dist/py/software/template.py b/dist/py/software/template.py new file mode 100644 index 000000000..248786cd9 --- /dev/null +++ b/dist/py/software/template.py @@ -0,0 +1,44 @@ +# generated by datamodel-codegen: +# filename: software/template.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class TemplateSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ diff --git a/dist/py/software/template_properties.py b/dist/py/software/template_properties.py new file mode 100644 index 000000000..b0570458f --- /dev/null +++ b/dist/py/software/template_properties.py @@ -0,0 +1,27 @@ +# generated by datamodel-codegen: +# filename: software/template_properties.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class TemplatePropertiesSchema(BaseModel): + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ diff --git a/dist/py/software_directory/modeling/__init__.py b/dist/py/software_directory/modeling/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/software_directory/modeling/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/software_directory/modeling/deepmd.py b/dist/py/software_directory/modeling/deepmd.py new file mode 100644 index 000000000..60330a155 --- /dev/null +++ b/dist/py/software_directory/modeling/deepmd.py @@ -0,0 +1,77 @@ +# generated by datamodel-codegen: +# filename: software_directory/modeling/deepmd.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field + + +class Name(Enum): + deepmd = "deepmd" + + +class Summary(Enum): + DeePMD_is_a_deep_learning_package_that_is_based_on_neural_network_fitted_first_principles_data_for_many_body_potential_energy_representation_and_molecular_dynamics = "DeePMD is a deep learning package that is based on neural network fitted first-principles data for many-body potential energy representation and molecular dynamics" + + +class Version(Enum): + field_2_0_2 = "2.0.2" + + +class Exec(Enum): + dp = "dp" + lmp = "lmp" + python = "python" + + +class DeePMDAppSchema(BaseModel): + name: Name + """ + entity name + """ + summary: Summary + """ + Application's short description. + """ + version: Version + """ + Application version. e.g. 5.3.5 + """ + exec: Optional[Exec] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ diff --git a/dist/py/software_directory/modeling/espresso/__init__.py b/dist/py/software_directory/modeling/espresso/__init__.py new file mode 100644 index 000000000..87ae9d341 --- /dev/null +++ b/dist/py/software_directory/modeling/espresso/__init__.py @@ -0,0 +1,39 @@ +# generated by datamodel-codegen: +# filename: software_directory/modeling/espresso.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel + + +class Name(Enum): + espresso = "espresso" + + +class Summary(Enum): + Quantum_Espresso = "Quantum Espresso" + + +class Version(Enum): + field_5_2_1 = "5.2.1" + field_5_4_0 = "5.4.0" + field_6_0_0 = "6.0.0" + field_6_3 = "6.3" + field_6_4_1 = "6.4.1" + field_6_5_0 = "6.5.0" + field_6_6_0 = "6.6.0" + field_6_7_0 = "6.7.0" + field_6_8_0 = "6.8.0" + field_7_0 = "7.0" + field_7_2 = "7.2" + field_7_3 = "7.3" + + +class EspressoAppSchema(BaseModel): + name: Optional[Name] = None + summary: Optional[Summary] = None + version: Optional[Version] = None diff --git a/dist/py/software_directory/modeling/espresso/arguments.py b/dist/py/software_directory/modeling/espresso/arguments.py new file mode 100644 index 000000000..a12eb5475 --- /dev/null +++ b/dist/py/software_directory/modeling/espresso/arguments.py @@ -0,0 +1,35 @@ +# generated by datamodel-codegen: +# filename: software_directory/modeling/espresso/arguments.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, ConfigDict, conint + + +class QuantumEspressoArgumentsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + nimage: Optional[conint(ge=1, le=100)] = 1 + """ + Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. + """ + npools: Optional[conint(ge=1, le=100)] = 1 + """ + Each image can be subpartitioned into `pools`, each taking care of a group of k-points. + """ + nband: Optional[conint(ge=1, le=100)] = 1 + """ + Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). + """ + ntg: Optional[conint(ge=1, le=100)] = 1 + """ + In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. + """ + ndiag: Optional[conint(ge=1, le=100)] = 1 + """ + A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. + """ diff --git a/dist/py/software_directory/modeling/nwchem.py b/dist/py/software_directory/modeling/nwchem.py new file mode 100644 index 000000000..f3a59394d --- /dev/null +++ b/dist/py/software_directory/modeling/nwchem.py @@ -0,0 +1,78 @@ +# generated by datamodel-codegen: +# filename: software_directory/modeling/nwchem.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field + + +class Name(Enum): + NWChem = "NWChem" + + +class Summary(Enum): + NWChem__a_comprehensive_and_scalable_open_source_solution_for_large_scale_molecular_simulations = ( + "NWChem: a comprehensive and scalable open-source solution for large scale molecular simulations" + ) + + +class Version(Enum): + field_6_6 = "6.6" + field_7_0_2 = "7.0.2" + + +class Exec(Enum): + nwchem = "nwchem" + + +class NWChem(BaseModel): + name: Name + """ + entity name + """ + summary: Summary + """ + Application's short description. + """ + version: Version + """ + Application version. e.g. 5.3.5 + """ + exec: Optional[Exec] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ diff --git a/dist/py/software_directory/modeling/unit/__init__.py b/dist/py/software_directory/modeling/unit/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/software_directory/modeling/unit/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/software_directory/modeling/unit/execution.py b/dist/py/software_directory/modeling/unit/execution.py new file mode 100644 index 000000000..e43fa8c50 --- /dev/null +++ b/dist/py/software_directory/modeling/unit/execution.py @@ -0,0 +1,365 @@ +# generated by datamodel-codegen: +# filename: software_directory/modeling/unit/execution.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class ApplicationSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + summary: str + """ + Application's short description. + """ + version: str + """ + Application version. e.g. 5.3.5 + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ + + +class ExecutableSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class FlavorSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ + + +class TemplateSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema(BaseModel): + template: TemplateSchema = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class TemplateSchema7(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines7(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + template: TemplateSchema7 = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class ContextItem(BaseModel): + name: str + isEdited: bool + data: Dict[str, Any] + extraData: Optional[Dict[str, Any]] = None + + +class ExecutionUnitSchemaForPhysicsBasedSimulationEnginesDefinedUsingEspressoAsExample(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["execution"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + application: ApplicationSchema = Field(..., title="application schema") + executable: Optional[ExecutableSchema] = Field(None, title="executable schema") + flavor: Optional[FlavorSchema] = Field(None, title="flavor schema") + input: List[ + Union[ExecutionUnitInputItemSchema, ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines7] + ] = Field(..., title="execution unit input schema") + context: Optional[List[ContextItem]] = None diff --git a/dist/py/software_directory/modeling/vasp.py b/dist/py/software_directory/modeling/vasp.py new file mode 100644 index 000000000..9c13b2e8a --- /dev/null +++ b/dist/py/software_directory/modeling/vasp.py @@ -0,0 +1,82 @@ +# generated by datamodel-codegen: +# filename: software_directory/modeling/vasp.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field + + +class Name(Enum): + vasp = "vasp" + + +class Summary(Enum): + vienna_ab_initio_simulation_package = "vienna ab-initio simulation package" + + +class Flavor(Enum): + vasp = "vasp" + vasp_nscf = "vasp_nscf" + vasp_bands = "vasp_bands" + + +class Version(Enum): + field_5_3_5 = "5.3.5" + + +class Exec(Enum): + vasp = "vasp" + + +class ViennaAbInitoSimulationPackage(BaseModel): + name: Name + """ + entity name + """ + summary: Summary + """ + Application's short description. + """ + flavor: Optional[Flavor] = None + version: Version + """ + Application version. e.g. 5.3.5 + """ + exec: Optional[Exec] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ diff --git a/dist/py/software_directory/scripting/__init__.py b/dist/py/software_directory/scripting/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/software_directory/scripting/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/software_directory/scripting/jupyter_lab.py b/dist/py/software_directory/scripting/jupyter_lab.py new file mode 100644 index 000000000..8ddc5f78b --- /dev/null +++ b/dist/py/software_directory/scripting/jupyter_lab.py @@ -0,0 +1,80 @@ +# generated by datamodel-codegen: +# filename: software_directory/scripting/jupyter_lab.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field + + +class Name(Enum): + jupyterLab = "jupyterLab" + + +class Flavor(Enum): + notebook = "notebook" + + +class Summary(Enum): + Jupyter_Lab = "Jupyter Lab" + + +class Version(Enum): + field_0_33_12 = "0.33.12" + + +class Exec(Enum): + jupyter = "jupyter" + + +class JupyterLabApplicationSchema(BaseModel): + name: Name + """ + entity name + """ + flavor: Optional[Flavor] = None + summary: Summary + """ + Application's short description. + """ + version: Version + """ + Application version. e.g. 5.3.5 + """ + exec: Optional[Exec] = None + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ diff --git a/dist/py/software_directory/scripting/python.py b/dist/py/software_directory/scripting/python.py new file mode 100644 index 000000000..a919222fe --- /dev/null +++ b/dist/py/software_directory/scripting/python.py @@ -0,0 +1,94 @@ +# generated by datamodel-codegen: +# filename: software_directory/scripting/python.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel, Field + + +class Name(Enum): + python = "python" + + +class Flavor(Enum): + python2 = "python2" + python3 = "python3" + + +class Summary(Enum): + Python_Script = "Python Script" + + +class Version(Enum): + field_2_7_5 = "2.7.5" + field_3_6_1 = "3.6.1" + + +class Exec(Enum): + python = "python" + + +class PythonProgramingLanguageSchema(BaseModel): + name: Name + """ + entity name + """ + flavor: Optional[Flavor] = None + summary: Summary + """ + Application's short description. + """ + version: Version + """ + Application version. e.g. 5.3.5 + """ + exec: Optional[Exec] = None + arguments: Optional[str] = None + """ + Optional arguments passed to the Python script + """ + environment: Optional[Dict[str, Any]] = None + """ + Optional environment variables exported before running the Python script + """ + dependencies: Optional[List] = None + """ + Optional Python dependencies, e.g. amqp==1.4.6 + """ + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ diff --git a/dist/py/software_directory/scripting/shell.py b/dist/py/software_directory/scripting/shell.py new file mode 100644 index 000000000..c105d645b --- /dev/null +++ b/dist/py/software_directory/scripting/shell.py @@ -0,0 +1,94 @@ +# generated by datamodel-codegen: +# filename: software_directory/scripting/shell.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, Optional + +from pydantic import BaseModel, Field + + +class Name(Enum): + shell = "shell" + + +class Flavor(Enum): + sh = "sh" + bash = "bash" + zsh = "zsh" + csh = "csh" + + +class Summary(Enum): + Shell_Script = "Shell Script" + + +class Version(Enum): + field_4_2_46 = "4.2.46" + + +class Exec(Enum): + sh = "sh" + bash = "bash" + zsh = "zsh" + csh = "csh" + + +class ShellScriptingLanguageSchema(BaseModel): + name: Name + """ + entity name + """ + flavor: Optional[Flavor] = None + summary: Summary + """ + Application's short description. + """ + version: Version + """ + Application version. e.g. 5.3.5 + """ + exec: Optional[Exec] = None + arguments: Optional[str] = None + """ + Optional arguments passed to the Shell script + """ + environment: Optional[Dict[str, Any]] = None + """ + Optional environment variables exported before running the Shell script + """ + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ diff --git a/dist/py/software_directory/scripting/unit/__init__.py b/dist/py/software_directory/scripting/unit/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/software_directory/scripting/unit/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/software_directory/scripting/unit/execution.py b/dist/py/software_directory/scripting/unit/execution.py new file mode 100644 index 000000000..a7c2e7c06 --- /dev/null +++ b/dist/py/software_directory/scripting/unit/execution.py @@ -0,0 +1,365 @@ +# generated by datamodel-codegen: +# filename: software_directory/scripting/unit/execution.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class ApplicationSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + summary: str + """ + Application's short description. + """ + version: str + """ + Application version. e.g. 5.3.5 + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ + + +class ExecutableSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class FlavorSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ + + +class TemplateSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema(BaseModel): + template: TemplateSchema = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class TemplateSchema5(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines5(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + template: TemplateSchema5 = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class ContextItem(BaseModel): + name: str + isEdited: bool + data: Dict[str, Any] + extraData: Optional[Dict[str, Any]] = None + + +class ExecutionUnitSchemaForScriptingBasedApplications(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["execution"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + application: ApplicationSchema = Field(..., title="application schema") + executable: Optional[ExecutableSchema] = Field(None, title="executable schema") + flavor: Optional[FlavorSchema] = Field(None, title="flavor schema") + input: List[ + Union[ExecutionUnitInputItemSchema, ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines5] + ] = Field(..., title="execution unit input schema") + context: Optional[List[ContextItem]] = None diff --git a/dist/py/system/__init__.py b/dist/py/system/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/system/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/system/_material.py b/dist/py/system/_material.py new file mode 100644 index 000000000..0f323d3d2 --- /dev/null +++ b/dist/py/system/_material.py @@ -0,0 +1,29 @@ +# generated by datamodel-codegen: +# filename: system/_material.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field + + +class Cls(Enum): + Material = "Material" + + +class MaterialEntityReferenceSchema(BaseModel): + cls: Optional[Cls] = None + """ + Material class + """ + id: str = Field(..., alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ diff --git a/dist/py/system/_parent_job.py b/dist/py/system/_parent_job.py new file mode 100644 index 000000000..4c28d200c --- /dev/null +++ b/dist/py/system/_parent_job.py @@ -0,0 +1,29 @@ +# generated by datamodel-codegen: +# filename: system/_parent_job.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field + + +class Cls(Enum): + Job = "Job" + + +class ParentJobEntityReferenceSchema(BaseModel): + cls: Optional[Cls] = None + """ + Job class + """ + id: str = Field(..., alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ diff --git a/dist/py/system/_project.py b/dist/py/system/_project.py new file mode 100644 index 000000000..8697d19ff --- /dev/null +++ b/dist/py/system/_project.py @@ -0,0 +1,29 @@ +# generated by datamodel-codegen: +# filename: system/_project.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field + + +class Cls(Enum): + Project = "Project" + + +class ProjectEntityReferenceSchema(BaseModel): + cls: Optional[Cls] = None + """ + Project class + """ + id: str = Field(..., alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ diff --git a/dist/py/system/bankable.py b/dist/py/system/bankable.py new file mode 100644 index 000000000..b8c9cc5f5 --- /dev/null +++ b/dist/py/system/bankable.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: system/bankable.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class BankableSchema(BaseModel): + exabyteId: Optional[str] = None + """ + Identity of the corresponding bank entity + """ + hash: Optional[str] = None + """ + Hash string which is calculated based on the meaningful fields of the entity. Used to identify equal entities. + """ diff --git a/dist/py/system/consistency_check.py b/dist/py/system/consistency_check.py new file mode 100644 index 000000000..6fea57979 --- /dev/null +++ b/dist/py/system/consistency_check.py @@ -0,0 +1,34 @@ +# generated by datamodel-codegen: +# filename: system/consistency_check.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum + +from pydantic import BaseModel + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class ConsistencyCheck(BaseModel): + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + name: str + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ diff --git a/dist/py/system/creator.py b/dist/py/system/creator.py new file mode 100644 index 000000000..64bf63571 --- /dev/null +++ b/dist/py/system/creator.py @@ -0,0 +1,29 @@ +# generated by datamodel-codegen: +# filename: system/creator.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field + + +class Cls(Enum): + User = "User" + + +class CreatorEntityReferenceSchema(BaseModel): + cls: Optional[Cls] = None + """ + Creator class + """ + id: str = Field(..., alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ diff --git a/dist/py/system/creator_account.py b/dist/py/system/creator_account.py new file mode 100644 index 000000000..ce950beae --- /dev/null +++ b/dist/py/system/creator_account.py @@ -0,0 +1,28 @@ +# generated by datamodel-codegen: +# filename: system/creator_account.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, Field + + +class EntityReferenceSchema(BaseModel): + id: str = Field(..., alias="_id") + """ + entity identity + """ + cls: Optional[str] = None + """ + entity class + """ + slug: Optional[str] = None + """ + entity slug + """ + + +class CreatorAccountSchema(BaseModel): + creatorAccount: Optional[EntityReferenceSchema] = Field(None, title="entity reference schema") diff --git a/dist/py/system/database_source.py b/dist/py/system/database_source.py new file mode 100644 index 000000000..b7fbbe18b --- /dev/null +++ b/dist/py/system/database_source.py @@ -0,0 +1,36 @@ +# generated by datamodel-codegen: +# filename: system/database_source.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, Optional, Union + +from pydantic import BaseModel + + +class DatabaseSourceSchema(BaseModel): + id: Union[str, float] + """ + ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32 + """ + source: str + """ + Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc. + """ + origin: bool + """ + Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch). + """ + data: Optional[Dict[str, Any]] = None + """ + Original response from external source. + """ + doi: Optional[str] = None + """ + Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506 + """ + url: Optional[str] = None + """ + The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers + """ diff --git a/dist/py/system/defaultable.py b/dist/py/system/defaultable.py new file mode 100644 index 000000000..541ffbbd7 --- /dev/null +++ b/dist/py/system/defaultable.py @@ -0,0 +1,16 @@ +# generated by datamodel-codegen: +# filename: system/defaultable.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class DefaultableEntitySchema(BaseModel): + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ diff --git a/dist/py/system/description.py b/dist/py/system/description.py new file mode 100644 index 000000000..e4f9e6d9d --- /dev/null +++ b/dist/py/system/description.py @@ -0,0 +1,17 @@ +# generated by datamodel-codegen: +# filename: system/description.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, Optional + +from pydantic import BaseModel + + +class DescriptionSchema(BaseModel): + description: Optional[str] = None + """ + entity description + """ + descriptionObject: Optional[Dict[str, Any]] = None diff --git a/dist/py/system/entity_reference.py b/dist/py/system/entity_reference.py new file mode 100644 index 000000000..4b995f7ab --- /dev/null +++ b/dist/py/system/entity_reference.py @@ -0,0 +1,24 @@ +# generated by datamodel-codegen: +# filename: system/entity_reference.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, Field + + +class EntityReferenceSchema(BaseModel): + id: str = Field(..., alias="_id") + """ + entity identity + """ + cls: Optional[str] = None + """ + entity class + """ + slug: Optional[str] = None + """ + entity slug + """ diff --git a/dist/py/system/file_source.py b/dist/py/system/file_source.py new file mode 100644 index 000000000..8e88767bc --- /dev/null +++ b/dist/py/system/file_source.py @@ -0,0 +1,28 @@ +# generated by datamodel-codegen: +# filename: system/file_source.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class FileSourceSchema(BaseModel): + extension: Optional[str] = None + """ + file extension + """ + filename: str + """ + file name without extension + """ + text: str + """ + file content as raw text + """ + hash: str + """ + MD5 hash based on file content + """ diff --git a/dist/py/system/has_consistency_check.py b/dist/py/system/has_consistency_check.py new file mode 100644 index 000000000..9326d7870 --- /dev/null +++ b/dist/py/system/has_consistency_check.py @@ -0,0 +1,39 @@ +# generated by datamodel-codegen: +# filename: system/has_consistency_check.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel + + +class Severity(Enum): + info = "info" + warning = "warning" + error = "error" + + +class ConsistencyCheck(BaseModel): + key: str + """ + Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1' + """ + name: str + """ + Name of the consistency check that is performed, which is listed in an enum. + """ + severity: Severity + """ + Severity level of the problem, which is used in UI to differentiate. + """ + message: str + """ + Message generated by the consistency check describing the problem. + """ + + +class HasConsistencyCheckSchema(BaseModel): + consistencyChecks: Optional[List[ConsistencyCheck]] = None diff --git a/dist/py/system/history.py b/dist/py/system/history.py new file mode 100644 index 000000000..47093050a --- /dev/null +++ b/dist/py/system/history.py @@ -0,0 +1,18 @@ +# generated by datamodel-codegen: +# filename: system/history.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel + + +class HistoryItem(BaseModel): + id: str + revision: float + + +class HistorySchema(BaseModel): + history: Optional[List[HistoryItem]] = None diff --git a/dist/py/system/iframe_message.py b/dist/py/system/iframe_message.py new file mode 100644 index 000000000..3d3191bbb --- /dev/null +++ b/dist/py/system/iframe_message.py @@ -0,0 +1,36 @@ +# generated by datamodel-codegen: +# filename: system/iframe_message.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict + +from pydantic import BaseModel + + +class Type(Enum): + from_iframe_to_host = "from-iframe-to-host" + from_host_to_iframe = "from-host-to-iframe" + + +class Action(Enum): + set_data = "set-data" + get_data = "get-data" + info = "info" + + +class IframeMessageSchema(BaseModel): + type: Type + """ + The type of the message to distinguish the direction of the message. + """ + action: Action + """ + The action to be performed upon receiving the message. + """ + payload: Dict[str, Any] + """ + The content of the message with actual data. + """ diff --git a/dist/py/system/in_set.py b/dist/py/system/in_set.py new file mode 100644 index 000000000..a0a6d9471 --- /dev/null +++ b/dist/py/system/in_set.py @@ -0,0 +1,30 @@ +# generated by datamodel-codegen: +# filename: system/in_set.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class EntityReferenceSchema(BaseModel): + id: str = Field(..., alias="_id") + """ + entity identity + """ + cls: Optional[str] = None + """ + entity class + """ + slug: Optional[str] = None + """ + entity slug + """ + type: Optional[str] = None + index: Optional[float] = None + + +class SystemInSetSchema(BaseModel): + inSet: Optional[List[EntityReferenceSchema]] = None diff --git a/dist/py/system/is_multi_material.py b/dist/py/system/is_multi_material.py new file mode 100644 index 000000000..fadab66ea --- /dev/null +++ b/dist/py/system/is_multi_material.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: system/is_multi_material.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class IsMultiSchema(BaseModel): + isMultiMaterial: Optional[bool] = None diff --git a/dist/py/system/is_outdated.py b/dist/py/system/is_outdated.py new file mode 100644 index 000000000..a54b2e327 --- /dev/null +++ b/dist/py/system/is_outdated.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: system/is_outdated.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class IsOutdatedSchema(BaseModel): + isOutdated: Optional[bool] = None diff --git a/dist/py/system/job_extended.py b/dist/py/system/job_extended.py new file mode 100644 index 000000000..cbc8daf5f --- /dev/null +++ b/dist/py/system/job_extended.py @@ -0,0 +1,34 @@ +# generated by datamodel-codegen: +# filename: system/job_extended.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel, Field + + +class EntityReferenceSchema(BaseModel): + id: str = Field(..., alias="_id") + """ + entity identity + """ + cls: Optional[str] = None + """ + entity class + """ + slug: Optional[str] = None + """ + entity slug + """ + + +class ExtendedJobSchema(BaseModel): + mode: Optional[str] = None + isExternal: Optional[bool] = None + materials: Optional[List[EntityReferenceSchema]] = Field(None, alias="_materials") + materialsSet: Optional[EntityReferenceSchema] = Field(None, alias="_materialsSet", title="entity reference schema") + purged: Optional[bool] = None + purgedAt: Optional[float] = None + dataset: Optional[Dict[str, Any]] = None diff --git a/dist/py/system/message.py b/dist/py/system/message.py new file mode 100644 index 000000000..722661fb3 --- /dev/null +++ b/dist/py/system/message.py @@ -0,0 +1,59 @@ +# generated by datamodel-codegen: +# filename: system/message.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, Optional + +from pydantic import BaseModel, Field + + +class Name(Enum): + job = "job" + unit = "unit" + + +class Probe(Enum): + monitor = "monitor" + postprocessor = "postprocessor" + + +class Entity(BaseModel): + id: str = Field(..., alias="_id") + """ + job identifier + """ + name: Name + """ + entity name. + """ + flowchartId: Optional[str] = None + """ + unit identifier within the workflow + """ + probe: Optional[Probe] = None + """ + source of the message. + """ + + +class Header(BaseModel): + entity: Entity + version: str + """ + Rupy-Webapp communication schema version. + """ + timestamp: float + """ + Timestamp of the message. + """ + + +class MessageSchema(BaseModel): + header: Header + payload: Dict[str, Any] + """ + Actual payload of the message. + """ diff --git a/dist/py/system/metadata.py b/dist/py/system/metadata.py new file mode 100644 index 000000000..15b53eefb --- /dev/null +++ b/dist/py/system/metadata.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: system/metadata.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, Optional + +from pydantic import BaseModel + + +class MetadataSchema(BaseModel): + metadata: Optional[Dict[str, Any]] = None diff --git a/dist/py/system/name.py b/dist/py/system/name.py new file mode 100644 index 000000000..d96f02b86 --- /dev/null +++ b/dist/py/system/name.py @@ -0,0 +1,14 @@ +# generated by datamodel-codegen: +# filename: system/name.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import BaseModel + + +class NameEntitySchema(BaseModel): + name: str + """ + entity name + """ diff --git a/dist/py/system/owner.py b/dist/py/system/owner.py new file mode 100644 index 000000000..070c5681b --- /dev/null +++ b/dist/py/system/owner.py @@ -0,0 +1,29 @@ +# generated by datamodel-codegen: +# filename: system/owner.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field + + +class Cls(Enum): + Account = "Account" + + +class EntityOwnerReferenceSchema(BaseModel): + cls: Optional[Cls] = None + """ + Entity owner class + """ + id: str = Field(..., alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ diff --git a/dist/py/system/path.py b/dist/py/system/path.py new file mode 100644 index 000000000..13e86c32b --- /dev/null +++ b/dist/py/system/path.py @@ -0,0 +1,16 @@ +# generated by datamodel-codegen: +# filename: system/path.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, Field + + +class PathSchema(BaseModel): + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ diff --git a/dist/py/system/path_entity.py b/dist/py/system/path_entity.py new file mode 100644 index 000000000..efc5f4c5d --- /dev/null +++ b/dist/py/system/path_entity.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: system/path_entity.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, Field + + +class PathEntitySchema(BaseModel): + name: str + """ + entity name + """ + path: Optional[str] = Field(None, title="category path schema") + """ + TODO: Use regex once schema draft version has been updated + """ diff --git a/dist/py/system/runtime_item.py b/dist/py/system/runtime_item.py new file mode 100644 index 000000000..72b90315f --- /dev/null +++ b/dist/py/system/runtime_item.py @@ -0,0 +1,14 @@ +# generated by datamodel-codegen: +# filename: system/runtime_item.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import BaseModel + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ diff --git a/dist/py/system/runtime_items.py b/dist/py/system/runtime_items.py new file mode 100644 index 000000000..ccc9c536b --- /dev/null +++ b/dist/py/system/runtime_items.py @@ -0,0 +1,35 @@ +# generated by datamodel-codegen: +# filename: system/runtime_items.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List + +from pydantic import BaseModel + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class RuntimeItemsSchema(BaseModel): + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ diff --git a/dist/py/system/schema_version.py b/dist/py/system/schema_version.py new file mode 100644 index 000000000..a8f36da1e --- /dev/null +++ b/dist/py/system/schema_version.py @@ -0,0 +1,16 @@ +# generated by datamodel-codegen: +# filename: system/schema_version.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class SchemaVersion(BaseModel): + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ diff --git a/dist/py/system/scope.py b/dist/py/system/scope.py new file mode 100644 index 000000000..f993fd3ac --- /dev/null +++ b/dist/py/system/scope.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: system/scope.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class ScopeSchema(BaseModel): + scope: Optional[str] = None diff --git a/dist/py/system/set.py b/dist/py/system/set.py new file mode 100644 index 000000000..21597c5a4 --- /dev/null +++ b/dist/py/system/set.py @@ -0,0 +1,15 @@ +# generated by datamodel-codegen: +# filename: system/set.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class EntitySetSchema(BaseModel): + isEntitySet: Optional[bool] = None + entitySetType: Optional[str] = None + entityCls: Optional[str] = None diff --git a/dist/py/system/sharing.py b/dist/py/system/sharing.py new file mode 100644 index 000000000..300402aae --- /dev/null +++ b/dist/py/system/sharing.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: system/sharing.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class ExtendedSharingSchema(BaseModel): + sharedCount: Optional[float] = None diff --git a/dist/py/system/soft_removable.py b/dist/py/system/soft_removable.py new file mode 100644 index 000000000..5314b3023 --- /dev/null +++ b/dist/py/system/soft_removable.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: system/soft_removable.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class SoftRemovableEntitySchema(BaseModel): + removedAt: Optional[str] = None + """ + Timestamp of the moment when entity was removed + """ + removed: Optional[bool] = None + """ + Identifies that entity was removed + """ diff --git a/dist/py/system/status.py b/dist/py/system/status.py new file mode 100644 index 000000000..b97ad5c78 --- /dev/null +++ b/dist/py/system/status.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: system/status.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class StatusSchema(BaseModel): + status: Optional[str] = None + statusTrack: Optional[List[StatusTrackItem]] = None diff --git a/dist/py/system/tags.py b/dist/py/system/tags.py new file mode 100644 index 000000000..c9c8087a1 --- /dev/null +++ b/dist/py/system/tags.py @@ -0,0 +1,16 @@ +# generated by datamodel-codegen: +# filename: system/tags.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel + + +class EntityTagsSchema(BaseModel): + tags: Optional[List[str]] = None + """ + entity tags + """ diff --git a/dist/py/system/timestampable.py b/dist/py/system/timestampable.py new file mode 100644 index 000000000..297ffd85e --- /dev/null +++ b/dist/py/system/timestampable.py @@ -0,0 +1,23 @@ +# generated by datamodel-codegen: +# filename: system/timestampable.json +# version: 0.28.5 + +from __future__ import annotations + +from datetime import datetime +from typing import Optional + +from pydantic import BaseModel + + +class TimestampableEntitySchema(BaseModel): + createdAt: Optional[datetime] = None + """ + entity creation time + """ + updatedAt: Optional[datetime] = None + """ + entity last modification time + """ + createdBy: Optional[str] = None + updatedBy: Optional[str] = None diff --git a/dist/py/system/use_values.py b/dist/py/system/use_values.py new file mode 100644 index 000000000..771bbcba1 --- /dev/null +++ b/dist/py/system/use_values.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: system/use_values.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class UseValuesSchema(BaseModel): + useValues: Optional[bool] = None diff --git a/dist/py/workflow/__init__.py b/dist/py/workflow/__init__.py new file mode 100644 index 000000000..dbde41538 --- /dev/null +++ b/dist/py/workflow/__init__.py @@ -0,0 +1,2143 @@ +# generated by datamodel-codegen: +# filename: workflow.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, RootModel, conint + + +class Queue(Enum): + D = "D" + OR = "OR" + OF = "OF" + OFplus = "OFplus" + SR = "SR" + SF = "SF" + SFplus = "SFplus" + GPOF = "GPOF" + GP2OF = "GP2OF" + GP4OF = "GP4OF" + GPSF = "GPSF" + GP2SF = "GP2SF" + GP4SF = "GP4SF" + OR4 = "OR4" + OR8 = "OR8" + OR16 = "OR16" + SR4 = "SR4" + SR8 = "SR8" + SR16 = "SR16" + GOF = "GOF" + G4OF = "G4OF" + G8OF = "G8OF" + GSF = "GSF" + G4SF = "G4SF" + G8SF = "G8SF" + + +class TimeLimitType(Enum): + per_single_attempt = "per single attempt" + compound = "compound" + + +class QuantumEspressoArgumentsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + nimage: Optional[conint(ge=1, le=100)] = 1 + """ + Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. + """ + npools: Optional[conint(ge=1, le=100)] = 1 + """ + Each image can be subpartitioned into `pools`, each taking care of a group of k-points. + """ + nband: Optional[conint(ge=1, le=100)] = 1 + """ + Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). + """ + ntg: Optional[conint(ge=1, le=100)] = 1 + """ + In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. + """ + ndiag: Optional[conint(ge=1, le=100)] = 1 + """ + A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. + """ + + +class Cluster(BaseModel): + fqdn: Optional[str] = None + """ + FQDN of the cluster. e.g. master-1-staging.exabyte.io + """ + jid: Optional[str] = None + """ + Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io + """ + + +class Domain(Enum): + rupy = "rupy" + alfred = "alfred" + celim = "celim" + webapp = "webapp" + + +class Error(BaseModel): + domain: Optional[Domain] = None + """ + Domain of the error appearance (internal). + """ + reason: Optional[str] = None + """ + Should be a short, unique, machine-readable error code string. e.g. FileNotFound + """ + message: Optional[str] = None + """ + Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' + """ + traceback: Optional[str] = None + """ + Full machine-readable error traceback. e.g. FileNotFound + """ + + +class ComputeArgumentsSchema(BaseModel): + queue: Queue + """ + Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. + """ + nodes: int + """ + number of nodes used for the job inside the RMS. + """ + ppn: int + """ + number of CPUs used for the job inside the RMS. + """ + timeLimit: str + """ + Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' + """ + timeLimitType: Optional[TimeLimitType] = "per single attempt" + """ + Convention to use when reasoning about time limits + """ + isRestartable: Optional[bool] = True + """ + Job is allowed to restart on termination. + """ + notify: Optional[str] = None + """ + Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. + """ + email: Optional[str] = None + """ + Email address to notify about job execution. + """ + maxCPU: Optional[int] = None + """ + Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. + """ + arguments: Optional[QuantumEspressoArgumentsSchema] = Field({}, title="quantum espresso arguments schema") + """ + Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + """ + cluster: Optional[Cluster] = None + """ + Cluster where the job is executed. Optional on create. Required on job submission. + """ + errors: Optional[List[Error]] = None + """ + Computation error. Optional. Appears only if something happens on jobs execution. + """ + excludeFilesPattern: Optional[str] = None + """ + A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + """ + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class Subtype(Enum): + input = "input" + output = "output" + dataFrame = "dataFrame" + + +class Source(Enum): + api = "api" + db = "db" + object_storage = "object_storage" + + +class DataIODatabaseIdsInputOutputSchema(BaseModel): + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + ids: List[str] + """ + IDs of item to retrieve from db + """ + + +class DataIODatabaseCollectionInputOutputSchema(BaseModel): + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + collection: str + """ + db collection name + """ + draft: bool + """ + whether the result should be saved as draft + """ + + +class ObjectStorageContainerData(BaseModel): + CONTAINER: Optional[str] = None + """ + Object storage container for the file + """ + NAME: Optional[str] = None + """ + Name of the file inside the object storage bucket + """ + PROVIDER: Optional[str] = None + """ + Object storage provider + """ + REGION: Optional[str] = None + """ + Region for the object container specified in Container + """ + SIZE: Optional[int] = None + """ + Size of the file in bytes + """ + TIMESTAMP: Optional[str] = None + """ + Unix timestamp showing when the file was last modified + """ + + +class ObjectStorageIoSchema(BaseModel): + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + overwrite: Optional[bool] = None + """ + if a file with the same filename already exists, whether to overwrite the old file + """ + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + filetype: Optional[str] = None + """ + What kind of file this is, e.g. image / text + """ + + +class Input( + RootModel[ + Union[DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema] + ] +): + root: Union[ + DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema + ] = Field(..., discriminator="type") + + +class DataIOUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + subtype: Subtype + source: Source + input: List[Input] + + +class InputItem(BaseModel): + operation: str + """ + reduce operation, e.g. aggregate + """ + arguments: List[str] + """ + arguments which are passed to reduce operation function + """ + + +class ReduceUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + mapFlowchartId: str + """ + corresponding map unit flowchart ID + """ + input: List[InputItem] + """ + input information for reduce unit + """ + + +class WorkflowUnitInputSchema(BaseModel): + scope: str + """ + Scope of the variable. e.g. 'global' or 'flowchart_id_2' + """ + name: str + """ + Name of the input data. e.g. total_energy + """ + + +class ConditionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + input: List[WorkflowUnitInputSchema] + """ + Input information for condition. + """ + statement: str + """ + Condition statement. e.g. 'abs(x-total_energy) < 1e-5' + """ + then: str + """ + Flowchart ID reference for `then` part of the condition. + """ + else_: str = Field(..., alias="else") + """ + Flowchart ID reference for `else` part of the condition. + """ + maxOccurrences: int + """ + Maximum occurrence of the condition, usable for loops. + """ + throwException: Optional[bool] = None + """ + Throw exception on reaching to maximum occurence. + """ + + +class AssertionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + statement: str + """ + The statement to be evaluated + """ + errorMessage: Optional[str] = None + """ + The error message to be displayed if the assertion fails + """ + + +class ApplicationSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + summary: str + """ + Application's short description. + """ + version: str + """ + Application version. e.g. 5.3.5 + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ + + +class ExecutableSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class FlavorSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ + + +class TemplateSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema(BaseModel): + template: TemplateSchema = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class ContextItem(BaseModel): + name: str + isEdited: bool + data: Dict[str, Any] + extraData: Optional[Dict[str, Any]] = None + + +class ExecutionUnitSchemaBase(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + application: ApplicationSchema = Field(..., title="application schema") + executable: Optional[ExecutableSchema] = Field(None, title="executable schema") + flavor: Optional[FlavorSchema] = Field(None, title="flavor schema") + input: List[ExecutionUnitInputItemSchema] + context: Optional[List[ContextItem]] = None + + +class AssignmentUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + scope: Optional[str] = None + input: List[WorkflowUnitInputSchema] + """ + Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + """ + operand: str + """ + Name of the global variable. e.g. 'x' + """ + value: Union[str, bool, float] + """ + Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + """ + + +class ProcessingUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + operation: str + """ + Contains information about the operation used. + """ + operationType: str + """ + Contains information about the specific type of the operation used. + """ + inputData: Any + """ + unit input (type to be specified by the child units) + """ + + +class WorkflowSubworkflowUnitSchema( + RootModel[ + Union[ + DataIOUnitSchema, + ReduceUnitSchema, + ConditionUnitSchema, + AssertionUnitSchema, + ExecutionUnitSchemaBase, + AssignmentUnitSchema, + ProcessingUnitSchema, + ] + ] +): + root: Union[ + DataIOUnitSchema, + ReduceUnitSchema, + ConditionUnitSchema, + AssertionUnitSchema, + ExecutionUnitSchemaBase, + AssignmentUnitSchema, + ProcessingUnitSchema, + ] = Field(..., discriminator="type", title="workflow subworkflow unit schema") + + +class BaseMethod(BaseModel): + type: str + """ + general type of this method, eg. `pseudopotential` + """ + subtype: str + """ + general subtype of this method, eg. `ultra-soft` + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + data: Optional[Dict[str, Any]] = None + """ + additional data specific to method, eg. array of pseudopotentials + """ + + +class BaseModel1(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + type: str + """ + general type of the model, eg. `dft` + """ + subtype: str + """ + general subtype of the model, eg. `lda` + """ + method: BaseMethod = Field(..., title="base method") + + +class SubworkflowSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + properties: Optional[List[str]] = None + """ + Array of characteristic properties calculated by this subworkflow + """ + compute: Optional[ComputeArgumentsSchema] = Field(None, title="compute arguments schema") + """ + Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + """ + units: List[WorkflowSubworkflowUnitSchema] + """ + Contains the Units of the subworkflow + """ + model: BaseModel1 = Field(..., title="base model") + application: ApplicationSchema = Field(..., title="application schema") + isDraft: Optional[bool] = False + """ + Defines whether to store the results/properties extracted in this unit to properties collection + """ + + +class ObjectStorageIoSchema12(BaseModel): + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + overwrite: Optional[bool] = None + """ + if a file with the same filename already exists, whether to overwrite the old file + """ + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + filetype: Optional[str] = None + """ + What kind of file this is, e.g. image / text + """ + + +class Input16( + RootModel[ + Union[DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema12] + ] +): + root: Union[ + DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema12 + ] = Field(..., discriminator="type") + + +class DataIOUnitSchema10(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + subtype: Subtype + source: Source + input: List[Input16] + + +class ReduceUnitSchema10(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + mapFlowchartId: str + """ + corresponding map unit flowchart ID + """ + input: List[InputItem] + """ + input information for reduce unit + """ + + +class ConditionUnitSchema10(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + input: List[WorkflowUnitInputSchema] + """ + Input information for condition. + """ + statement: str + """ + Condition statement. e.g. 'abs(x-total_energy) < 1e-5' + """ + then: str + """ + Flowchart ID reference for `then` part of the condition. + """ + else_: str = Field(..., alias="else") + """ + Flowchart ID reference for `else` part of the condition. + """ + maxOccurrences: int + """ + Maximum occurrence of the condition, usable for loops. + """ + throwException: Optional[bool] = None + """ + Throw exception on reaching to maximum occurence. + """ + + +class AssertionUnitSchema10(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + statement: str + """ + The statement to be evaluated + """ + errorMessage: Optional[str] = None + """ + The error message to be displayed if the assertion fails + """ + + +class ExecutableSchema14(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + + +class FlavorSchema14(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ + + +class TemplateSchema18(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema15(BaseModel): + template: TemplateSchema18 = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class ExecutionUnitSchemaBase10(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + application: ApplicationSchema = Field(..., title="application schema") + executable: Optional[ExecutableSchema14] = Field(None, title="executable schema") + flavor: Optional[FlavorSchema14] = Field(None, title="flavor schema") + input: List[ExecutionUnitInputItemSchema15] + context: Optional[List[ContextItem]] = None + + +class AssignmentUnitSchema10(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + scope: Optional[str] = None + input: List[WorkflowUnitInputSchema] + """ + Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + """ + operand: str + """ + Name of the global variable. e.g. 'x' + """ + value: Union[str, bool, float] + """ + Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + """ + + +class ProcessingUnitSchema10(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + operation: str + """ + Contains information about the operation used. + """ + operationType: str + """ + Contains information about the specific type of the operation used. + """ + inputData: Any + """ + unit input (type to be specified by the child units) + """ + + +class Input17(BaseModel): + target: str + """ + Name of the target variable to substitute using the values below. e.g. K_POINTS + """ + scope: Optional[str] = None + """ + Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given. + """ + name: Optional[str] = None + """ + Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given. + """ + values: Optional[List[Union[str, float, Dict[str, Any]]]] = None + """ + Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution + """ + useValues: Optional[bool] = None + + +class MapUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["7#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + workflowId: str + """ + Id of workflow to run inside map + """ + input: Input17 + """ + Input information for map. + """ + + +class SubworkflowUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["8#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + + +class WorkflowUnitSchema( + RootModel[ + Union[ + DataIOUnitSchema10, + ReduceUnitSchema10, + ConditionUnitSchema10, + AssertionUnitSchema10, + ExecutionUnitSchemaBase10, + AssignmentUnitSchema10, + ProcessingUnitSchema10, + MapUnitSchema, + SubworkflowUnitSchema, + ] + ] +): + root: Union[ + DataIOUnitSchema10, + ReduceUnitSchema10, + ConditionUnitSchema10, + AssertionUnitSchema10, + ExecutionUnitSchemaBase10, + AssignmentUnitSchema10, + ProcessingUnitSchema10, + MapUnitSchema, + SubworkflowUnitSchema, + ] = Field(..., discriminator="type", title="workflow unit schema") + + +class WorkflowSchema(BaseModel): + subworkflows: List[SubworkflowSchema] + """ + Array of subworkflows. Subworkflow can be an instance of workflow to allow for nesting + """ + units: List[WorkflowUnitSchema] + """ + Contains the Units of the Workflow + """ + properties: Optional[List[Union[str, Dict[str, Any]]]] = None + """ + Array of characteristic properties calculated by this workflow (TODO: add enums) + """ + isUsingDataset: Optional[bool] = None + """ + Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab. + """ + workflows: Optional[List[Dict[str, Any]]] = None + """ + Array of workflows with the same schema as the current one. + """ + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + metadata: Optional[Dict[str, Any]] = None diff --git a/dist/py/workflow/base.py b/dist/py/workflow/base.py new file mode 100644 index 000000000..01f347d91 --- /dev/null +++ b/dist/py/workflow/base.py @@ -0,0 +1,46 @@ +# generated by datamodel-codegen: +# filename: workflow/base.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel, Field + + +class BaseWorkflowSchema(BaseModel): + properties: Optional[List[Union[str, Dict[str, Any]]]] = None + """ + Array of characteristic properties calculated by this workflow (TODO: add enums) + """ + isUsingDataset: Optional[bool] = None + """ + Whether to use the dataset tab in the job designer. Mutually exclusive with using the materials tab. + """ + workflows: Optional[List[Dict[str, Any]]] = None + """ + Array of workflows with the same schema as the current one. + """ + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + metadata: Optional[Dict[str, Any]] = None diff --git a/dist/py/workflow/base_flow.py b/dist/py/workflow/base_flow.py new file mode 100644 index 000000000..35c148740 --- /dev/null +++ b/dist/py/workflow/base_flow.py @@ -0,0 +1,180 @@ +# generated by datamodel-codegen: +# filename: workflow/base_flow.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, ConfigDict, Field, conint + + +class Queue(Enum): + D = "D" + OR = "OR" + OF = "OF" + OFplus = "OFplus" + SR = "SR" + SF = "SF" + SFplus = "SFplus" + GPOF = "GPOF" + GP2OF = "GP2OF" + GP4OF = "GP4OF" + GPSF = "GPSF" + GP2SF = "GP2SF" + GP4SF = "GP4SF" + OR4 = "OR4" + OR8 = "OR8" + OR16 = "OR16" + SR4 = "SR4" + SR8 = "SR8" + SR16 = "SR16" + GOF = "GOF" + G4OF = "G4OF" + G8OF = "G8OF" + GSF = "GSF" + G4SF = "G4SF" + G8SF = "G8SF" + + +class TimeLimitType(Enum): + per_single_attempt = "per single attempt" + compound = "compound" + + +class QuantumEspressoArgumentsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + nimage: Optional[conint(ge=1, le=100)] = 1 + """ + Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. + """ + npools: Optional[conint(ge=1, le=100)] = 1 + """ + Each image can be subpartitioned into `pools`, each taking care of a group of k-points. + """ + nband: Optional[conint(ge=1, le=100)] = 1 + """ + Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). + """ + ntg: Optional[conint(ge=1, le=100)] = 1 + """ + In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. + """ + ndiag: Optional[conint(ge=1, le=100)] = 1 + """ + A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. + """ + + +class Cluster(BaseModel): + fqdn: Optional[str] = None + """ + FQDN of the cluster. e.g. master-1-staging.exabyte.io + """ + jid: Optional[str] = None + """ + Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io + """ + + +class Domain(Enum): + rupy = "rupy" + alfred = "alfred" + celim = "celim" + webapp = "webapp" + + +class Error(BaseModel): + domain: Optional[Domain] = None + """ + Domain of the error appearance (internal). + """ + reason: Optional[str] = None + """ + Should be a short, unique, machine-readable error code string. e.g. FileNotFound + """ + message: Optional[str] = None + """ + Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' + """ + traceback: Optional[str] = None + """ + Full machine-readable error traceback. e.g. FileNotFound + """ + + +class ComputeArgumentsSchema(BaseModel): + queue: Queue + """ + Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. + """ + nodes: int + """ + number of nodes used for the job inside the RMS. + """ + ppn: int + """ + number of CPUs used for the job inside the RMS. + """ + timeLimit: str + """ + Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' + """ + timeLimitType: Optional[TimeLimitType] = "per single attempt" + """ + Convention to use when reasoning about time limits + """ + isRestartable: Optional[bool] = True + """ + Job is allowed to restart on termination. + """ + notify: Optional[str] = None + """ + Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. + """ + email: Optional[str] = None + """ + Email address to notify about job execution. + """ + maxCPU: Optional[int] = None + """ + Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. + """ + arguments: Optional[QuantumEspressoArgumentsSchema] = Field({}, title="quantum espresso arguments schema") + """ + Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + """ + cluster: Optional[Cluster] = None + """ + Cluster where the job is executed. Optional on create. Required on job submission. + """ + errors: Optional[List[Error]] = None + """ + Computation error. Optional. Appears only if something happens on jobs execution. + """ + excludeFilesPattern: Optional[str] = None + """ + A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + """ + + +class BaseFlow(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + subworkflow identity + """ + name: str + """ + Human-readable name of the subworkflow. e.g. Total-energy + """ + properties: Optional[List[str]] = None + """ + Array of characteristic properties calculated by this subworkflow + """ + compute: Optional[ComputeArgumentsSchema] = Field(None, title="compute arguments schema") + """ + Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + """ diff --git a/dist/py/workflow/scope.py b/dist/py/workflow/scope.py new file mode 100644 index 000000000..17452bf46 --- /dev/null +++ b/dist/py/workflow/scope.py @@ -0,0 +1,14 @@ +# generated by datamodel-codegen: +# filename: workflow/scope.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict + +from pydantic import BaseModel, Field + + +class WorkflowScopeSchema(BaseModel): + global_: Dict[str, Any] = Field(..., alias="global") + local: Dict[str, Any] diff --git a/dist/py/workflow/subworkflow/__init__.py b/dist/py/workflow/subworkflow/__init__.py new file mode 100644 index 000000000..377ca7f57 --- /dev/null +++ b/dist/py/workflow/subworkflow/__init__.py @@ -0,0 +1,1164 @@ +# generated by datamodel-codegen: +# filename: workflow/subworkflow.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, RootModel, conint + + +class Queue(Enum): + D = "D" + OR = "OR" + OF = "OF" + OFplus = "OFplus" + SR = "SR" + SF = "SF" + SFplus = "SFplus" + GPOF = "GPOF" + GP2OF = "GP2OF" + GP4OF = "GP4OF" + GPSF = "GPSF" + GP2SF = "GP2SF" + GP4SF = "GP4SF" + OR4 = "OR4" + OR8 = "OR8" + OR16 = "OR16" + SR4 = "SR4" + SR8 = "SR8" + SR16 = "SR16" + GOF = "GOF" + G4OF = "G4OF" + G8OF = "G8OF" + GSF = "GSF" + G4SF = "G4SF" + G8SF = "G8SF" + + +class TimeLimitType(Enum): + per_single_attempt = "per single attempt" + compound = "compound" + + +class QuantumEspressoArgumentsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + nimage: Optional[conint(ge=1, le=100)] = 1 + """ + Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. + """ + npools: Optional[conint(ge=1, le=100)] = 1 + """ + Each image can be subpartitioned into `pools`, each taking care of a group of k-points. + """ + nband: Optional[conint(ge=1, le=100)] = 1 + """ + Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). + """ + ntg: Optional[conint(ge=1, le=100)] = 1 + """ + In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. + """ + ndiag: Optional[conint(ge=1, le=100)] = 1 + """ + A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. + """ + + +class Cluster(BaseModel): + fqdn: Optional[str] = None + """ + FQDN of the cluster. e.g. master-1-staging.exabyte.io + """ + jid: Optional[str] = None + """ + Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io + """ + + +class Domain(Enum): + rupy = "rupy" + alfred = "alfred" + celim = "celim" + webapp = "webapp" + + +class Error(BaseModel): + domain: Optional[Domain] = None + """ + Domain of the error appearance (internal). + """ + reason: Optional[str] = None + """ + Should be a short, unique, machine-readable error code string. e.g. FileNotFound + """ + message: Optional[str] = None + """ + Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' + """ + traceback: Optional[str] = None + """ + Full machine-readable error traceback. e.g. FileNotFound + """ + + +class ComputeArgumentsSchema(BaseModel): + queue: Queue + """ + Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. + """ + nodes: int + """ + number of nodes used for the job inside the RMS. + """ + ppn: int + """ + number of CPUs used for the job inside the RMS. + """ + timeLimit: str + """ + Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' + """ + timeLimitType: Optional[TimeLimitType] = "per single attempt" + """ + Convention to use when reasoning about time limits + """ + isRestartable: Optional[bool] = True + """ + Job is allowed to restart on termination. + """ + notify: Optional[str] = None + """ + Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. + """ + email: Optional[str] = None + """ + Email address to notify about job execution. + """ + maxCPU: Optional[int] = None + """ + Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. + """ + arguments: Optional[QuantumEspressoArgumentsSchema] = Field({}, title="quantum espresso arguments schema") + """ + Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + """ + cluster: Optional[Cluster] = None + """ + Cluster where the job is executed. Optional on create. Required on job submission. + """ + errors: Optional[List[Error]] = None + """ + Computation error. Optional. Appears only if something happens on jobs execution. + """ + excludeFilesPattern: Optional[str] = None + """ + A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + """ + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class Subtype(Enum): + input = "input" + output = "output" + dataFrame = "dataFrame" + + +class Source(Enum): + api = "api" + db = "db" + object_storage = "object_storage" + + +class DataIODatabaseIdsInputOutputSchema(BaseModel): + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + ids: List[str] + """ + IDs of item to retrieve from db + """ + + +class DataIODatabaseCollectionInputOutputSchema(BaseModel): + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + collection: str + """ + db collection name + """ + draft: bool + """ + whether the result should be saved as draft + """ + + +class ObjectStorageContainerData(BaseModel): + CONTAINER: Optional[str] = None + """ + Object storage container for the file + """ + NAME: Optional[str] = None + """ + Name of the file inside the object storage bucket + """ + PROVIDER: Optional[str] = None + """ + Object storage provider + """ + REGION: Optional[str] = None + """ + Region for the object container specified in Container + """ + SIZE: Optional[int] = None + """ + Size of the file in bytes + """ + TIMESTAMP: Optional[str] = None + """ + Unix timestamp showing when the file was last modified + """ + + +class ObjectStorageIoSchema(BaseModel): + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + overwrite: Optional[bool] = None + """ + if a file with the same filename already exists, whether to overwrite the old file + """ + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + filetype: Optional[str] = None + """ + What kind of file this is, e.g. image / text + """ + + +class Input( + RootModel[ + Union[DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema] + ] +): + root: Union[ + DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema + ] = Field(..., discriminator="type") + + +class DataIOUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + subtype: Subtype + source: Source + input: List[Input] + + +class InputItem(BaseModel): + operation: str + """ + reduce operation, e.g. aggregate + """ + arguments: List[str] + """ + arguments which are passed to reduce operation function + """ + + +class ReduceUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + mapFlowchartId: str + """ + corresponding map unit flowchart ID + """ + input: List[InputItem] + """ + input information for reduce unit + """ + + +class WorkflowUnitInputSchema(BaseModel): + scope: str + """ + Scope of the variable. e.g. 'global' or 'flowchart_id_2' + """ + name: str + """ + Name of the input data. e.g. total_energy + """ + + +class ConditionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + input: List[WorkflowUnitInputSchema] + """ + Input information for condition. + """ + statement: str + """ + Condition statement. e.g. 'abs(x-total_energy) < 1e-5' + """ + then: str + """ + Flowchart ID reference for `then` part of the condition. + """ + else_: str = Field(..., alias="else") + """ + Flowchart ID reference for `else` part of the condition. + """ + maxOccurrences: int + """ + Maximum occurrence of the condition, usable for loops. + """ + throwException: Optional[bool] = None + """ + Throw exception on reaching to maximum occurence. + """ + + +class AssertionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + statement: str + """ + The statement to be evaluated + """ + errorMessage: Optional[str] = None + """ + The error message to be displayed if the assertion fails + """ + + +class ApplicationSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + summary: str + """ + Application's short description. + """ + version: str + """ + Application version. e.g. 5.3.5 + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ + + +class ExecutableSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class FlavorSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ + + +class TemplateSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema(BaseModel): + template: TemplateSchema = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class ContextItem(BaseModel): + name: str + isEdited: bool + data: Dict[str, Any] + extraData: Optional[Dict[str, Any]] = None + + +class ExecutionUnitSchemaBase(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + application: ApplicationSchema = Field(..., title="application schema") + executable: Optional[ExecutableSchema] = Field(None, title="executable schema") + flavor: Optional[FlavorSchema] = Field(None, title="flavor schema") + input: List[ExecutionUnitInputItemSchema] + context: Optional[List[ContextItem]] = None + + +class AssignmentUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + scope: Optional[str] = None + input: List[WorkflowUnitInputSchema] + """ + Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + """ + operand: str + """ + Name of the global variable. e.g. 'x' + """ + value: Union[str, bool, float] + """ + Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + """ + + +class ProcessingUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + operation: str + """ + Contains information about the operation used. + """ + operationType: str + """ + Contains information about the specific type of the operation used. + """ + inputData: Any + """ + unit input (type to be specified by the child units) + """ + + +class WorkflowSubworkflowUnitSchema( + RootModel[ + Union[ + DataIOUnitSchema, + ReduceUnitSchema, + ConditionUnitSchema, + AssertionUnitSchema, + ExecutionUnitSchemaBase, + AssignmentUnitSchema, + ProcessingUnitSchema, + ] + ] +): + root: Union[ + DataIOUnitSchema, + ReduceUnitSchema, + ConditionUnitSchema, + AssertionUnitSchema, + ExecutionUnitSchemaBase, + AssignmentUnitSchema, + ProcessingUnitSchema, + ] = Field(..., discriminator="type", title="workflow subworkflow unit schema") + + +class BaseMethod(BaseModel): + type: str + """ + general type of this method, eg. `pseudopotential` + """ + subtype: str + """ + general subtype of this method, eg. `ultra-soft` + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + data: Optional[Dict[str, Any]] = None + """ + additional data specific to method, eg. array of pseudopotentials + """ + + +class BaseModel1(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + type: str + """ + general type of the model, eg. `dft` + """ + subtype: str + """ + general subtype of the model, eg. `lda` + """ + method: BaseMethod = Field(..., title="base method") + + +class SubworkflowSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + properties: Optional[List[str]] = None + """ + Array of characteristic properties calculated by this subworkflow + """ + compute: Optional[ComputeArgumentsSchema] = Field(None, title="compute arguments schema") + """ + Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + """ + units: List[WorkflowSubworkflowUnitSchema] + """ + Contains the Units of the subworkflow + """ + model: BaseModel1 = Field(..., title="base model") + application: ApplicationSchema = Field(..., title="application schema") + isDraft: Optional[bool] = False + """ + Defines whether to store the results/properties extracted in this unit to properties collection + """ diff --git a/dist/py/workflow/subworkflow/mixin.py b/dist/py/workflow/subworkflow/mixin.py new file mode 100644 index 000000000..03d33eb16 --- /dev/null +++ b/dist/py/workflow/subworkflow/mixin.py @@ -0,0 +1,1147 @@ +# generated by datamodel-codegen: +# filename: workflow/subworkflow/mixin.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, RootModel, conint + + +class Queue(Enum): + D = "D" + OR = "OR" + OF = "OF" + OFplus = "OFplus" + SR = "SR" + SF = "SF" + SFplus = "SFplus" + GPOF = "GPOF" + GP2OF = "GP2OF" + GP4OF = "GP4OF" + GPSF = "GPSF" + GP2SF = "GP2SF" + GP4SF = "GP4SF" + OR4 = "OR4" + OR8 = "OR8" + OR16 = "OR16" + SR4 = "SR4" + SR8 = "SR8" + SR16 = "SR16" + GOF = "GOF" + G4OF = "G4OF" + G8OF = "G8OF" + GSF = "GSF" + G4SF = "G4SF" + G8SF = "G8SF" + + +class TimeLimitType(Enum): + per_single_attempt = "per single attempt" + compound = "compound" + + +class QuantumEspressoArgumentsSchema(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + nimage: Optional[conint(ge=1, le=100)] = 1 + """ + Processors can be divided into different `images`, each corresponding to a different self-consistent or linear-response calculation, loosely coupled to others. + """ + npools: Optional[conint(ge=1, le=100)] = 1 + """ + Each image can be subpartitioned into `pools`, each taking care of a group of k-points. + """ + nband: Optional[conint(ge=1, le=100)] = 1 + """ + Each pool is subpartitioned into `band groups`, each taking care of a group of Kohn-Sham orbitals (also called bands, or wavefunctions). + """ + ntg: Optional[conint(ge=1, le=100)] = 1 + """ + In order to allow good parallelization of the 3D FFT when the number of processors exceeds the number of FFT planes, FFTs on Kohn-Sham states are redistributed to `task` groups so that each group can process several wavefunctions at the same time. + """ + ndiag: Optional[conint(ge=1, le=100)] = 1 + """ + A further level of parallelization, independent on PW or k-point parallelization, is the parallelization of subspace diagonalization / iterative orthonormalization. Both operations required the diagonalization of arrays whose dimension is the number of Kohn-Sham states (or a small multiple of it). All such arrays are distributed block-like across the `linear-algebra group`, a subgroup of the pool of processors, organized in a square 2D grid. As a consequence the number of processors in the linear-algebra group is given by n2, where n is an integer; n2 must be smaller than the number of processors in the PW group. The diagonalization is then performed in parallel using standard linear algebra operations. + """ + + +class Cluster(BaseModel): + fqdn: Optional[str] = None + """ + FQDN of the cluster. e.g. master-1-staging.exabyte.io + """ + jid: Optional[str] = None + """ + Job's identity in RMS. e.g. 1234.master-1-staging.exabyte.io + """ + + +class Domain(Enum): + rupy = "rupy" + alfred = "alfred" + celim = "celim" + webapp = "webapp" + + +class Error(BaseModel): + domain: Optional[Domain] = None + """ + Domain of the error appearance (internal). + """ + reason: Optional[str] = None + """ + Should be a short, unique, machine-readable error code string. e.g. FileNotFound + """ + message: Optional[str] = None + """ + Human-readable error message. e.g. 'File Not Found: /home/demo/data/project1/job-123/job-config.json' + """ + traceback: Optional[str] = None + """ + Full machine-readable error traceback. e.g. FileNotFound + """ + + +class ComputeArgumentsSchema(BaseModel): + queue: Queue + """ + Name of the submission queues: https://docs.mat3ra.com/infrastructure/resource/queues/. Below enums are for Azure, then AWS circa 2022-08, hence the duplication. + """ + nodes: int + """ + number of nodes used for the job inside the RMS. + """ + ppn: int + """ + number of CPUs used for the job inside the RMS. + """ + timeLimit: str + """ + Wallclock time limit for computing a job. Clock format: 'hh:mm:ss' + """ + timeLimitType: Optional[TimeLimitType] = "per single attempt" + """ + Convention to use when reasoning about time limits + """ + isRestartable: Optional[bool] = True + """ + Job is allowed to restart on termination. + """ + notify: Optional[str] = None + """ + Email notification for the job: n - never, a - job aborted, b - job begins, e - job ends. Last three could be combined. + """ + email: Optional[str] = None + """ + Email address to notify about job execution. + """ + maxCPU: Optional[int] = None + """ + Maximum CPU count per node. This parameter is used to let backend job submission infrastructure know that this job is to be charged for the maximum CPU per node instead of the actual ppn. For premium/fast queues where resources are provisioned on-demand and exclusively per user. + """ + arguments: Optional[QuantumEspressoArgumentsSchema] = Field({}, title="quantum espresso arguments schema") + """ + Optional arguments specific to using application - VASP, Quantum Espresso, etc. Specified elsewhere + """ + cluster: Optional[Cluster] = None + """ + Cluster where the job is executed. Optional on create. Required on job submission. + """ + errors: Optional[List[Error]] = None + """ + Computation error. Optional. Appears only if something happens on jobs execution. + """ + excludeFilesPattern: Optional[str] = None + """ + A Python compatible regex to exclude files from upload. e.g. ^.*.txt& excludes all files with .txt suffix + """ + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class Subtype(Enum): + input = "input" + output = "output" + dataFrame = "dataFrame" + + +class Source(Enum): + api = "api" + db = "db" + object_storage = "object_storage" + + +class DataIODatabaseIdsInputOutputSchema(BaseModel): + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + ids: List[str] + """ + IDs of item to retrieve from db + """ + + +class DataIODatabaseCollectionInputOutputSchema(BaseModel): + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + collection: str + """ + db collection name + """ + draft: bool + """ + whether the result should be saved as draft + """ + + +class ObjectStorageContainerData(BaseModel): + CONTAINER: Optional[str] = None + """ + Object storage container for the file + """ + NAME: Optional[str] = None + """ + Name of the file inside the object storage bucket + """ + PROVIDER: Optional[str] = None + """ + Object storage provider + """ + REGION: Optional[str] = None + """ + Region for the object container specified in Container + """ + SIZE: Optional[int] = None + """ + Size of the file in bytes + """ + TIMESTAMP: Optional[str] = None + """ + Unix timestamp showing when the file was last modified + """ + + +class ObjectStorageIoSchema(BaseModel): + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + overwrite: Optional[bool] = None + """ + if a file with the same filename already exists, whether to overwrite the old file + """ + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + filetype: Optional[str] = None + """ + What kind of file this is, e.g. image / text + """ + + +class Input( + RootModel[ + Union[DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema] + ] +): + root: Union[ + DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema + ] = Field(..., discriminator="type") + + +class DataIOUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + subtype: Subtype + source: Source + input: List[Input] + + +class InputItem(BaseModel): + operation: str + """ + reduce operation, e.g. aggregate + """ + arguments: List[str] + """ + arguments which are passed to reduce operation function + """ + + +class ReduceUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + mapFlowchartId: str + """ + corresponding map unit flowchart ID + """ + input: List[InputItem] + """ + input information for reduce unit + """ + + +class WorkflowUnitInputSchema(BaseModel): + scope: str + """ + Scope of the variable. e.g. 'global' or 'flowchart_id_2' + """ + name: str + """ + Name of the input data. e.g. total_energy + """ + + +class ConditionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + input: List[WorkflowUnitInputSchema] + """ + Input information for condition. + """ + statement: str + """ + Condition statement. e.g. 'abs(x-total_energy) < 1e-5' + """ + then: str + """ + Flowchart ID reference for `then` part of the condition. + """ + else_: str = Field(..., alias="else") + """ + Flowchart ID reference for `else` part of the condition. + """ + maxOccurrences: int + """ + Maximum occurrence of the condition, usable for loops. + """ + throwException: Optional[bool] = None + """ + Throw exception on reaching to maximum occurence. + """ + + +class AssertionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + statement: str + """ + The statement to be evaluated + """ + errorMessage: Optional[str] = None + """ + The error message to be displayed if the assertion fails + """ + + +class ApplicationSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + summary: str + """ + Application's short description. + """ + version: str + """ + Application version. e.g. 5.3.5 + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ + + +class ExecutableSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class FlavorSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ + + +class TemplateSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema(BaseModel): + template: TemplateSchema = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class ContextItem(BaseModel): + name: str + isEdited: bool + data: Dict[str, Any] + extraData: Optional[Dict[str, Any]] = None + + +class ExecutionUnitSchemaBase(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + application: ApplicationSchema = Field(..., title="application schema") + executable: Optional[ExecutableSchema] = Field(None, title="executable schema") + flavor: Optional[FlavorSchema] = Field(None, title="flavor schema") + input: List[ExecutionUnitInputItemSchema] + context: Optional[List[ContextItem]] = None + + +class AssignmentUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + scope: Optional[str] = None + input: List[WorkflowUnitInputSchema] + """ + Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + """ + operand: str + """ + Name of the global variable. e.g. 'x' + """ + value: Union[str, bool, float] + """ + Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + """ + + +class ProcessingUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + operation: str + """ + Contains information about the operation used. + """ + operationType: str + """ + Contains information about the specific type of the operation used. + """ + inputData: Any + """ + unit input (type to be specified by the child units) + """ + + +class WorkflowSubworkflowUnitSchema( + RootModel[ + Union[ + DataIOUnitSchema, + ReduceUnitSchema, + ConditionUnitSchema, + AssertionUnitSchema, + ExecutionUnitSchemaBase, + AssignmentUnitSchema, + ProcessingUnitSchema, + ] + ] +): + root: Union[ + DataIOUnitSchema, + ReduceUnitSchema, + ConditionUnitSchema, + AssertionUnitSchema, + ExecutionUnitSchemaBase, + AssignmentUnitSchema, + ProcessingUnitSchema, + ] = Field(..., discriminator="type", title="workflow subworkflow unit schema") + + +class BaseMethod(BaseModel): + type: str + """ + general type of this method, eg. `pseudopotential` + """ + subtype: str + """ + general subtype of this method, eg. `ultra-soft` + """ + precision: Optional[Dict[str, Any]] = None + """ + Object showing the actual possible precision based on theory and implementation + """ + data: Optional[Dict[str, Any]] = None + """ + additional data specific to method, eg. array of pseudopotentials + """ + + +class BaseModel1(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + type: str + """ + general type of the model, eg. `dft` + """ + subtype: str + """ + general subtype of the model, eg. `lda` + """ + method: BaseMethod = Field(..., title="base method") + + +class SubworkflowMixinSchema(BaseModel): + properties: Optional[List[str]] = None + """ + Array of characteristic properties calculated by this subworkflow + """ + compute: Optional[ComputeArgumentsSchema] = Field(None, title="compute arguments schema") + """ + Custom keywords prefixed with validate correspond to custom validation methods implemented downstream + """ + units: List[WorkflowSubworkflowUnitSchema] + """ + Contains the Units of the subworkflow + """ + model: BaseModel1 = Field(..., title="base model") + application: ApplicationSchema = Field(..., title="application schema") + isDraft: Optional[bool] = False + """ + Defines whether to store the results/properties extracted in this unit to properties collection + """ diff --git a/dist/py/workflow/subworkflow/unit.py b/dist/py/workflow/subworkflow/unit.py new file mode 100644 index 000000000..6e45a63a9 --- /dev/null +++ b/dist/py/workflow/subworkflow/unit.py @@ -0,0 +1,941 @@ +# generated by datamodel-codegen: +# filename: workflow/subworkflow/unit.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, RootModel + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class Subtype(Enum): + input = "input" + output = "output" + dataFrame = "dataFrame" + + +class Source(Enum): + api = "api" + db = "db" + object_storage = "object_storage" + + +class DataIODatabaseIdsInputOutputSchema(BaseModel): + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + ids: List[str] + """ + IDs of item to retrieve from db + """ + + +class DataIODatabaseCollectionInputOutputSchema(BaseModel): + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + collection: str + """ + db collection name + """ + draft: bool + """ + whether the result should be saved as draft + """ + + +class ObjectStorageContainerData(BaseModel): + CONTAINER: Optional[str] = None + """ + Object storage container for the file + """ + NAME: Optional[str] = None + """ + Name of the file inside the object storage bucket + """ + PROVIDER: Optional[str] = None + """ + Object storage provider + """ + REGION: Optional[str] = None + """ + Region for the object container specified in Container + """ + SIZE: Optional[int] = None + """ + Size of the file in bytes + """ + TIMESTAMP: Optional[str] = None + """ + Unix timestamp showing when the file was last modified + """ + + +class ObjectStorageIoSchema(BaseModel): + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + overwrite: Optional[bool] = None + """ + if a file with the same filename already exists, whether to overwrite the old file + """ + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + filetype: Optional[str] = None + """ + What kind of file this is, e.g. image / text + """ + + +class Input( + RootModel[ + Union[DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema] + ] +): + root: Union[ + DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema + ] = Field(..., discriminator="type") + + +class DataIOUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + subtype: Subtype + source: Source + input: List[Input] + + +class InputItem(BaseModel): + operation: str + """ + reduce operation, e.g. aggregate + """ + arguments: List[str] + """ + arguments which are passed to reduce operation function + """ + + +class ReduceUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + mapFlowchartId: str + """ + corresponding map unit flowchart ID + """ + input: List[InputItem] + """ + input information for reduce unit + """ + + +class WorkflowUnitInputSchema(BaseModel): + scope: str + """ + Scope of the variable. e.g. 'global' or 'flowchart_id_2' + """ + name: str + """ + Name of the input data. e.g. total_energy + """ + + +class ConditionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + input: List[WorkflowUnitInputSchema] + """ + Input information for condition. + """ + statement: str + """ + Condition statement. e.g. 'abs(x-total_energy) < 1e-5' + """ + then: str + """ + Flowchart ID reference for `then` part of the condition. + """ + else_: str = Field(..., alias="else") + """ + Flowchart ID reference for `else` part of the condition. + """ + maxOccurrences: int + """ + Maximum occurrence of the condition, usable for loops. + """ + throwException: Optional[bool] = None + """ + Throw exception on reaching to maximum occurence. + """ + + +class AssertionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + statement: str + """ + The statement to be evaluated + """ + errorMessage: Optional[str] = None + """ + The error message to be displayed if the assertion fails + """ + + +class ApplicationSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + summary: str + """ + Application's short description. + """ + version: str + """ + Application version. e.g. 5.3.5 + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ + + +class ExecutableSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class FlavorSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ + + +class TemplateSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema(BaseModel): + template: TemplateSchema = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class ContextItem(BaseModel): + name: str + isEdited: bool + data: Dict[str, Any] + extraData: Optional[Dict[str, Any]] = None + + +class ExecutionUnitSchemaBase(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + application: ApplicationSchema = Field(..., title="application schema") + executable: Optional[ExecutableSchema] = Field(None, title="executable schema") + flavor: Optional[FlavorSchema] = Field(None, title="flavor schema") + input: List[ExecutionUnitInputItemSchema] + context: Optional[List[ContextItem]] = None + + +class AssignmentUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + scope: Optional[str] = None + input: List[WorkflowUnitInputSchema] + """ + Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + """ + operand: str + """ + Name of the global variable. e.g. 'x' + """ + value: Union[str, bool, float] + """ + Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + """ + + +class ProcessingUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + operation: str + """ + Contains information about the operation used. + """ + operationType: str + """ + Contains information about the specific type of the operation used. + """ + inputData: Any + """ + unit input (type to be specified by the child units) + """ + + +class ESSE( + RootModel[ + Union[ + DataIOUnitSchema, + ReduceUnitSchema, + ConditionUnitSchema, + AssertionUnitSchema, + ExecutionUnitSchemaBase, + AssignmentUnitSchema, + ProcessingUnitSchema, + ] + ] +): + root: Union[ + DataIOUnitSchema, + ReduceUnitSchema, + ConditionUnitSchema, + AssertionUnitSchema, + ExecutionUnitSchemaBase, + AssignmentUnitSchema, + ProcessingUnitSchema, + ] = Field(..., discriminator="type", title="workflow subworkflow unit schema") diff --git a/dist/py/workflow/unit/__init__.py b/dist/py/workflow/unit/__init__.py new file mode 100644 index 000000000..c34338da3 --- /dev/null +++ b/dist/py/workflow/unit/__init__.py @@ -0,0 +1,1113 @@ +# generated by datamodel-codegen: +# filename: workflow/unit.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, RootModel + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class Subtype(Enum): + input = "input" + output = "output" + dataFrame = "dataFrame" + + +class Source(Enum): + api = "api" + db = "db" + object_storage = "object_storage" + + +class DataIODatabaseIdsInputOutputSchema(BaseModel): + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + ids: List[str] + """ + IDs of item to retrieve from db + """ + + +class DataIODatabaseCollectionInputOutputSchema(BaseModel): + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + collection: str + """ + db collection name + """ + draft: bool + """ + whether the result should be saved as draft + """ + + +class ObjectStorageContainerData(BaseModel): + CONTAINER: Optional[str] = None + """ + Object storage container for the file + """ + NAME: Optional[str] = None + """ + Name of the file inside the object storage bucket + """ + PROVIDER: Optional[str] = None + """ + Object storage provider + """ + REGION: Optional[str] = None + """ + Region for the object container specified in Container + """ + SIZE: Optional[int] = None + """ + Size of the file in bytes + """ + TIMESTAMP: Optional[str] = None + """ + Unix timestamp showing when the file was last modified + """ + + +class ObjectStorageIoSchema(BaseModel): + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + overwrite: Optional[bool] = None + """ + if a file with the same filename already exists, whether to overwrite the old file + """ + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + filetype: Optional[str] = None + """ + What kind of file this is, e.g. image / text + """ + + +class Input( + RootModel[ + Union[DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema] + ] +): + root: Union[ + DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema + ] = Field(..., discriminator="type") + + +class DataIOUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + subtype: Subtype + source: Source + input: List[Input] + + +class InputItem(BaseModel): + operation: str + """ + reduce operation, e.g. aggregate + """ + arguments: List[str] + """ + arguments which are passed to reduce operation function + """ + + +class ReduceUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + mapFlowchartId: str + """ + corresponding map unit flowchart ID + """ + input: List[InputItem] + """ + input information for reduce unit + """ + + +class WorkflowUnitInputSchema(BaseModel): + scope: str + """ + Scope of the variable. e.g. 'global' or 'flowchart_id_2' + """ + name: str + """ + Name of the input data. e.g. total_energy + """ + + +class ConditionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + input: List[WorkflowUnitInputSchema] + """ + Input information for condition. + """ + statement: str + """ + Condition statement. e.g. 'abs(x-total_energy) < 1e-5' + """ + then: str + """ + Flowchart ID reference for `then` part of the condition. + """ + else_: str = Field(..., alias="else") + """ + Flowchart ID reference for `else` part of the condition. + """ + maxOccurrences: int + """ + Maximum occurrence of the condition, usable for loops. + """ + throwException: Optional[bool] = None + """ + Throw exception on reaching to maximum occurence. + """ + + +class AssertionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["3#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + statement: str + """ + The statement to be evaluated + """ + errorMessage: Optional[str] = None + """ + The error message to be displayed if the assertion fails + """ + + +class ApplicationSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + summary: str + """ + Application's short description. + """ + version: str + """ + Application version. e.g. 5.3.5 + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ + + +class ExecutableSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class FlavorSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ + + +class TemplateSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema(BaseModel): + template: TemplateSchema = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class ContextItem(BaseModel): + name: str + isEdited: bool + data: Dict[str, Any] + extraData: Optional[Dict[str, Any]] = None + + +class ExecutionUnitSchemaBase(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["4#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + application: ApplicationSchema = Field(..., title="application schema") + executable: Optional[ExecutableSchema] = Field(None, title="executable schema") + flavor: Optional[FlavorSchema] = Field(None, title="flavor schema") + input: List[ExecutionUnitInputItemSchema] + context: Optional[List[ContextItem]] = None + + +class AssignmentUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["5#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + scope: Optional[str] = None + input: List[WorkflowUnitInputSchema] + """ + Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + """ + operand: str + """ + Name of the global variable. e.g. 'x' + """ + value: Union[str, bool, float] + """ + Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + """ + + +class ProcessingUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["6#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + operation: str + """ + Contains information about the operation used. + """ + operationType: str + """ + Contains information about the specific type of the operation used. + """ + inputData: Any + """ + unit input (type to be specified by the child units) + """ + + +class Input13(BaseModel): + target: str + """ + Name of the target variable to substitute using the values below. e.g. K_POINTS + """ + scope: Optional[str] = None + """ + Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given. + """ + name: Optional[str] = None + """ + Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given. + """ + values: Optional[List[Union[str, float, Dict[str, Any]]]] = None + """ + Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution + """ + useValues: Optional[bool] = None + + +class MapUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["7#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + workflowId: str + """ + Id of workflow to run inside map + """ + input: Input13 + """ + Input information for map. + """ + + +class SubworkflowUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["8#-datamodel-code-generator-#-object-#-special-#"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + + +class ESSE( + RootModel[ + Union[ + DataIOUnitSchema, + ReduceUnitSchema, + ConditionUnitSchema, + AssertionUnitSchema, + ExecutionUnitSchemaBase, + AssignmentUnitSchema, + ProcessingUnitSchema, + MapUnitSchema, + SubworkflowUnitSchema, + ] + ] +): + root: Union[ + DataIOUnitSchema, + ReduceUnitSchema, + ConditionUnitSchema, + AssertionUnitSchema, + ExecutionUnitSchemaBase, + AssignmentUnitSchema, + ProcessingUnitSchema, + MapUnitSchema, + SubworkflowUnitSchema, + ] = Field(..., discriminator="type", title="workflow unit schema") diff --git a/dist/py/workflow/unit/assertion.py b/dist/py/workflow/unit/assertion.py new file mode 100644 index 000000000..af2b9a4a4 --- /dev/null +++ b/dist/py/workflow/unit/assertion.py @@ -0,0 +1,109 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/assertion.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Literal, Optional + +from pydantic import BaseModel, Field + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class AssertionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["assertion"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + statement: str + """ + The statement to be evaluated + """ + errorMessage: Optional[str] = None + """ + The error message to be displayed if the assertion fails + """ diff --git a/dist/py/workflow/unit/assignment.py b/dist/py/workflow/unit/assignment.py new file mode 100644 index 000000000..557aa4a11 --- /dev/null +++ b/dist/py/workflow/unit/assignment.py @@ -0,0 +1,125 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/assignment.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Literal, Optional, Union + +from pydantic import BaseModel, Field + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class WorkflowUnitInputSchema(BaseModel): + scope: str + """ + Scope of the variable. e.g. 'global' or 'flowchart_id_2' + """ + name: str + """ + Name of the input data. e.g. total_energy + """ + + +class AssignmentUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["assignment"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + scope: Optional[str] = None + input: Optional[List[WorkflowUnitInputSchema]] = None + """ + Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + """ + operand: str + """ + Name of the global variable. e.g. 'x' + """ + value: Union[str, bool, float] + """ + Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + """ diff --git a/dist/py/workflow/unit/base.py b/dist/py/workflow/unit/base.py new file mode 100644 index 000000000..91db0fcd3 --- /dev/null +++ b/dist/py/workflow/unit/base.py @@ -0,0 +1,101 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/base.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class WorkflowBaseUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: str + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ diff --git a/dist/py/workflow/unit/condition.py b/dist/py/workflow/unit/condition.py new file mode 100644 index 000000000..44c09a7bd --- /dev/null +++ b/dist/py/workflow/unit/condition.py @@ -0,0 +1,136 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/condition.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Literal, Optional + +from pydantic import BaseModel, Field + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class WorkflowUnitInputSchema(BaseModel): + scope: str + """ + Scope of the variable. e.g. 'global' or 'flowchart_id_2' + """ + name: str + """ + Name of the input data. e.g. total_energy + """ + + +class ConditionUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["condition"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + input: List[WorkflowUnitInputSchema] + """ + Input information for condition. + """ + statement: str + """ + Condition statement. e.g. 'abs(x-total_energy) < 1e-5' + """ + then: str + """ + Flowchart ID reference for `then` part of the condition. + """ + else_: str = Field(..., alias="else") + """ + Flowchart ID reference for `else` part of the condition. + """ + maxOccurrences: int + """ + Maximum occurrence of the condition, usable for loops. + """ + throwException: Optional[bool] = None + """ + Throw exception on reaching to maximum occurence. + """ diff --git a/dist/py/workflow/unit/execution.py b/dist/py/workflow/unit/execution.py new file mode 100644 index 000000000..f66549c7f --- /dev/null +++ b/dist/py/workflow/unit/execution.py @@ -0,0 +1,317 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/execution.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional + +from pydantic import BaseModel, ConfigDict, Field + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class ApplicationSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + summary: str + """ + Application's short description. + """ + version: str + """ + Application version. e.g. 5.3.5 + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ + + +class ExecutableSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class FlavorSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ + + +class TemplateSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema(BaseModel): + template: TemplateSchema = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class ContextItem(BaseModel): + name: str + isEdited: bool + data: Dict[str, Any] + extraData: Optional[Dict[str, Any]] = None + + +class ExecutionUnitSchemaBase(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["execution"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + application: ApplicationSchema = Field(..., title="application schema") + executable: Optional[ExecutableSchema] = Field(None, title="executable schema") + flavor: Optional[FlavorSchema] = Field(None, title="flavor schema") + input: List[ExecutionUnitInputItemSchema] + context: Optional[List[ContextItem]] = None diff --git a/dist/py/workflow/unit/input/__init__.py b/dist/py/workflow/unit/input/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/workflow/unit/input/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/workflow/unit/input/_input.py b/dist/py/workflow/unit/input/_input.py new file mode 100644 index 000000000..b84315994 --- /dev/null +++ b/dist/py/workflow/unit/input/_input.py @@ -0,0 +1,71 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/input/_input.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class TemplateSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema(BaseModel): + template: TemplateSchema = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class ExecutionUnitInputSchema(BaseModel): + input: Optional[ + List[Union[ExecutionUnitInputItemSchema, ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines]] + ] = Field(None, title="execution unit input schema") diff --git a/dist/py/workflow/unit/input/_inputItem.py b/dist/py/workflow/unit/input/_inputItem.py new file mode 100644 index 000000000..86d4d1294 --- /dev/null +++ b/dist/py/workflow/unit/input/_inputItem.py @@ -0,0 +1,53 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/input/_inputItem.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class TemplateSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema(BaseModel): + template: TemplateSchema = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False diff --git a/dist/py/workflow/unit/input/_inputItemId.py b/dist/py/workflow/unit/input/_inputItemId.py new file mode 100644 index 000000000..4f766a501 --- /dev/null +++ b/dist/py/workflow/unit/input/_inputItemId.py @@ -0,0 +1,21 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/input/_inputItemId.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, ConfigDict + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ diff --git a/dist/py/workflow/unit/input/_inputItemScope.py b/dist/py/workflow/unit/input/_inputItemScope.py new file mode 100644 index 000000000..466aafb59 --- /dev/null +++ b/dist/py/workflow/unit/input/_inputItemScope.py @@ -0,0 +1,18 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/input/_inputItemScope.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import BaseModel + + +class WorkflowUnitInputSchema(BaseModel): + scope: str + """ + Scope of the variable. e.g. 'global' or 'flowchart_id_2' + """ + name: str + """ + Name of the input data. e.g. total_energy + """ diff --git a/dist/py/workflow/unit/input/_map_input/__init__.py b/dist/py/workflow/unit/input/_map_input/__init__.py new file mode 100644 index 000000000..0d0a4308f --- /dev/null +++ b/dist/py/workflow/unit/input/_map_input/__init__.py @@ -0,0 +1,17 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/input/_map_input.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, List, Optional, Union + +from pydantic import BaseModel + + +class UnitMapInputSchema(BaseModel): + target: Optional[str] = None + values: Optional[List[Union[float, str, Dict[str, Any]]]] = None + useValues: Optional[bool] = None + scope: Optional[str] = None + name: Optional[str] = None diff --git a/dist/py/workflow/unit/input/_map_input/values.py b/dist/py/workflow/unit/input/_map_input/values.py new file mode 100644 index 000000000..ccd946e30 --- /dev/null +++ b/dist/py/workflow/unit/input/_map_input/values.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/input/_map_input/values.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel + + +class UnitValuesSchema(BaseModel): + values: Optional[str] = None diff --git a/dist/py/workflow/unit/io/__init__.py b/dist/py/workflow/unit/io/__init__.py new file mode 100644 index 000000000..1296f1716 --- /dev/null +++ b/dist/py/workflow/unit/io/__init__.py @@ -0,0 +1,194 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/io.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class Subtype(Enum): + input = "input" + output = "output" + dataFrame = "dataFrame" + + +class Source(Enum): + api = "api" + db = "db" + object_storage = "object_storage" + + +class DataIODatabaseIdsInputOutputSchema(BaseModel): + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + ids: List[str] + """ + IDs of item to retrieve from db + """ + + +class DataIODatabaseCollectionInputOutputSchema(BaseModel): + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + collection: str + """ + db collection name + """ + draft: bool + """ + whether the result should be saved as draft + """ + + +class ObjectStorageContainerData(BaseModel): + CONTAINER: Optional[str] = None + """ + Object storage container for the file + """ + NAME: Optional[str] = None + """ + Name of the file inside the object storage bucket + """ + PROVIDER: Optional[str] = None + """ + Object storage provider + """ + REGION: Optional[str] = None + """ + Region for the object container specified in Container + """ + SIZE: Optional[int] = None + """ + Size of the file in bytes + """ + TIMESTAMP: Optional[str] = None + """ + Unix timestamp showing when the file was last modified + """ + + +class ObjectStorageIoSchema(BaseModel): + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + overwrite: Optional[bool] = None + """ + if a file with the same filename already exists, whether to overwrite the old file + """ + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + filetype: Optional[str] = None + """ + What kind of file this is, e.g. image / text + """ + + +class Input( + RootModel[ + Union[DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema] + ] +): + root: Union[ + DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema + ] = Field(..., discriminator="type") + + +class DataIOUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["io"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + subtype: Subtype + source: Source + input: List[Input] diff --git a/dist/py/workflow/unit/io/api.py b/dist/py/workflow/unit/io/api.py new file mode 100644 index 000000000..a7fc8e262 --- /dev/null +++ b/dist/py/workflow/unit/io/api.py @@ -0,0 +1,27 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/io/api.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, Optional + +from pydantic import BaseModel, ConfigDict + + +class DataIORestAPIInputSchema(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + endpoint: str + """ + rest API endpoint + """ + endpoint_options: Dict[str, Any] + """ + rest API endpoint options + """ + name: Optional[str] = None + """ + the name of the variable in local scope to save the data under + """ diff --git a/dist/py/workflow/unit/io/db.py b/dist/py/workflow/unit/io/db.py new file mode 100644 index 000000000..d61435025 --- /dev/null +++ b/dist/py/workflow/unit/io/db.py @@ -0,0 +1,39 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/io/db.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Union + +from pydantic import BaseModel, ConfigDict, Field, RootModel + + +class DataIODatabaseInputOutputSchema(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + ids: List[str] + """ + IDs of item to retrieve from db + """ + + +class DataIODatabaseInputOutputSchema1(BaseModel): + model_config = ConfigDict( + extra="allow", + ) + collection: str + """ + db collection name + """ + draft: bool + """ + whether the result should be saved as draft + """ + + +class ESSE(RootModel[Union[DataIODatabaseInputOutputSchema, DataIODatabaseInputOutputSchema1]]): + root: Union[DataIODatabaseInputOutputSchema, DataIODatabaseInputOutputSchema1] = Field( + ..., title="data IO database input/output schema" + ) diff --git a/dist/py/workflow/unit/io/db_collection.py b/dist/py/workflow/unit/io/db_collection.py new file mode 100644 index 000000000..59f987221 --- /dev/null +++ b/dist/py/workflow/unit/io/db_collection.py @@ -0,0 +1,21 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/io/db_collection.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Literal + +from pydantic import BaseModel + + +class DataIODatabaseCollectionInputOutputSchema(BaseModel): + type: Literal["db_collection"] + collection: str + """ + db collection name + """ + draft: bool + """ + whether the result should be saved as draft + """ diff --git a/dist/py/workflow/unit/io/db_ids.py b/dist/py/workflow/unit/io/db_ids.py new file mode 100644 index 000000000..5dbf7129f --- /dev/null +++ b/dist/py/workflow/unit/io/db_ids.py @@ -0,0 +1,17 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/io/db_ids.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Literal + +from pydantic import BaseModel + + +class DataIODatabaseIdsInputOutputSchema(BaseModel): + type: Literal["db_ids"] + ids: List[str] + """ + IDs of item to retrieve from db + """ diff --git a/dist/py/workflow/unit/io/object_storage.py b/dist/py/workflow/unit/io/object_storage.py new file mode 100644 index 000000000..dbfe0524f --- /dev/null +++ b/dist/py/workflow/unit/io/object_storage.py @@ -0,0 +1,57 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/io/object_storage.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Literal, Optional + +from pydantic import BaseModel, Field + + +class ObjectStorageContainerData(BaseModel): + CONTAINER: Optional[str] = None + """ + Object storage container for the file + """ + NAME: Optional[str] = None + """ + Name of the file inside the object storage bucket + """ + PROVIDER: Optional[str] = None + """ + Object storage provider + """ + REGION: Optional[str] = None + """ + Region for the object container specified in Container + """ + SIZE: Optional[int] = None + """ + Size of the file in bytes + """ + TIMESTAMP: Optional[str] = None + """ + Unix timestamp showing when the file was last modified + """ + + +class ObjectStorageIoSchema(BaseModel): + type: Literal["object_storage"] + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + overwrite: Optional[bool] = None + """ + if a file with the same filename already exists, whether to overwrite the old file + """ + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + filetype: Optional[str] = None + """ + What kind of file this is, e.g. image / text + """ diff --git a/dist/py/workflow/unit/map.py b/dist/py/workflow/unit/map.py new file mode 100644 index 000000000..aadfb437d --- /dev/null +++ b/dist/py/workflow/unit/map.py @@ -0,0 +1,129 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/map.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel, Field + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class Input(BaseModel): + target: str + """ + Name of the target variable to substitute using the values below. e.g. K_POINTS + """ + scope: Optional[str] = None + """ + Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given. + """ + name: Optional[str] = None + """ + Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given. + """ + values: Optional[List[Union[str, float, Dict[str, Any]]]] = None + """ + Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution + """ + useValues: Optional[bool] = None + + +class MapUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["map"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + workflowId: str + """ + Id of workflow to run inside map + """ + input: Input + """ + Input information for map. + """ diff --git a/dist/py/workflow/unit/mixins/__init__.py b/dist/py/workflow/unit/mixins/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/workflow/unit/mixins/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/workflow/unit/mixins/assertion.py b/dist/py/workflow/unit/mixins/assertion.py new file mode 100644 index 000000000..6e97d18a8 --- /dev/null +++ b/dist/py/workflow/unit/mixins/assertion.py @@ -0,0 +1,21 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/mixins/assertion.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Literal, Optional + +from pydantic import BaseModel + + +class AssertionUnitMixinSchema(BaseModel): + type: Literal["assertion"] = "assertion" + statement: str + """ + The statement to be evaluated + """ + errorMessage: Optional[str] = None + """ + The error message to be displayed if the assertion fails + """ diff --git a/dist/py/workflow/unit/mixins/assignment.py b/dist/py/workflow/unit/mixins/assignment.py new file mode 100644 index 000000000..e5cd6297f --- /dev/null +++ b/dist/py/workflow/unit/mixins/assignment.py @@ -0,0 +1,36 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/mixins/assignment.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Literal, Optional, Union + +from pydantic import BaseModel + + +class WorkflowUnitInputSchema(BaseModel): + scope: str + """ + Scope of the variable. e.g. 'global' or 'flowchart_id_2' + """ + name: str + """ + Name of the input data. e.g. total_energy + """ + + +class AssignmentUnitMixinSchema(BaseModel): + type: Literal["assignment"] = "assignment" + input: Optional[List[WorkflowUnitInputSchema]] = None + """ + Input information for assignment. if omitted, means that it is an initialization unit, otherwise it is an assignment. + """ + operand: str + """ + Name of the global variable. e.g. 'x' + """ + value: Union[str, bool, float] + """ + Value of the variable. The value content could be a simple integer, string or a python expression. e.g. '0' (initialization), 'sin(x)+1' (expression) + """ diff --git a/dist/py/workflow/unit/mixins/base.py b/dist/py/workflow/unit/mixins/base.py new file mode 100644 index 000000000..d5efce150 --- /dev/null +++ b/dist/py/workflow/unit/mixins/base.py @@ -0,0 +1,50 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/mixins/base.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Optional + +from pydantic import BaseModel + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class WorkflowBaseUnitMixinSchema(BaseModel): + isDraft: Optional[bool] = None + type: str + """ + type of the unit + """ + name: Optional[str] = None + """ + name of the unit. e.g. pw_scf + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ diff --git a/dist/py/workflow/unit/mixins/condition.py b/dist/py/workflow/unit/mixins/condition.py new file mode 100644 index 000000000..1c5778a57 --- /dev/null +++ b/dist/py/workflow/unit/mixins/condition.py @@ -0,0 +1,48 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/mixins/condition.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Literal, Optional + +from pydantic import BaseModel, Field + + +class WorkflowUnitInputSchema(BaseModel): + scope: str + """ + Scope of the variable. e.g. 'global' or 'flowchart_id_2' + """ + name: str + """ + Name of the input data. e.g. total_energy + """ + + +class ConditionUnitMixinSchema(BaseModel): + type: Literal["condition"] = "condition" + input: List[WorkflowUnitInputSchema] + """ + Input information for condition. + """ + statement: str + """ + Condition statement. e.g. 'abs(x-total_energy) < 1e-5' + """ + then: str + """ + Flowchart ID reference for `then` part of the condition. + """ + else_: str = Field(..., alias="else") + """ + Flowchart ID reference for `else` part of the condition. + """ + maxOccurrences: int + """ + Maximum occurrence of the condition, usable for loops. + """ + throwException: Optional[bool] = None + """ + Throw exception on reaching to maximum occurence. + """ diff --git a/dist/py/workflow/unit/mixins/execution.py b/dist/py/workflow/unit/mixins/execution.py new file mode 100644 index 000000000..de7f8e283 --- /dev/null +++ b/dist/py/workflow/unit/mixins/execution.py @@ -0,0 +1,236 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/mixins/execution.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, List, Literal, Optional + +from pydantic import BaseModel, ConfigDict, Field + + +class ApplicationSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + shortName: str + """ + The short name of the application. e.g. qe + """ + summary: str + """ + Application's short description. + """ + version: str + """ + Application version. e.g. 5.3.5 + """ + build: str + """ + Application build. e.g. VTST + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + isLicensed: Optional[bool] = None + """ + Whether licensing is present + """ + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class ExecutableSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + applicationId: List[str] + """ + _ids of the application this executable belongs to + """ + hasAdvancedComputeOptions: Optional[bool] = None + """ + Whether advanced compute options are present + """ + + +class ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines(BaseModel): + model_config = ConfigDict( + extra="forbid", + ) + templateId: Optional[str] = None + templateName: Optional[str] = None + name: Optional[str] = None + """ + name of the resulting input file, if different than template name + """ + + +class FlavorSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + executableId: str + """ + _id of the executable this flavor belongs to + """ + executableName: Optional[str] = None + """ + name of the executable this flavor belongs to + """ + applicationName: Optional[str] = None + """ + name of the application this flavor belongs to + """ + input: List[ExecutionUnitInputIdItemSchemaForPhysicsBasedSimulationEngines] = Field( + ..., title="execution unit input schema" + ) + supportedApplicationVersions: Optional[List[str]] = None + """ + list of application versions this flavor supports + """ + + +class TemplateSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + applicationName: str + applicationVersion: Optional[str] = None + executableName: str + contextProviders: List[RuntimeItemNameObjectSchema] + content: str + """ + Content of the template. e.g. &CONTROL calculation='scf' ... + """ + + +class ExecutionUnitInputItemSchema(BaseModel): + template: TemplateSchema = Field(..., title="template schema") + rendered: str + """ + Rendered content of the input file. e.g. &CONTROL calculation='scf' ... + """ + isManuallyChanged: Optional[bool] = False + + +class ContextItem(BaseModel): + name: str + isEdited: bool + data: Dict[str, Any] + extraData: Optional[Dict[str, Any]] = None + + +class ExecutionUnitMixinSchema(BaseModel): + type: Literal["execution"] = "execution" + application: ApplicationSchema = Field(..., title="application schema") + executable: Optional[ExecutableSchema] = Field(None, title="executable schema") + flavor: Optional[FlavorSchema] = Field(None, title="flavor schema") + input: List[ExecutionUnitInputItemSchema] + context: Optional[List[ContextItem]] = None diff --git a/dist/py/workflow/unit/mixins/io.py b/dist/py/workflow/unit/mixins/io.py new file mode 100644 index 000000000..9e3ef8300 --- /dev/null +++ b/dist/py/workflow/unit/mixins/io.py @@ -0,0 +1,107 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/mixins/io.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Literal, Optional, Union + +from pydantic import BaseModel, Field, RootModel + + +class Subtype(Enum): + input = "input" + output = "output" + dataFrame = "dataFrame" + + +class Source(Enum): + api = "api" + db = "db" + object_storage = "object_storage" + + +class DataIODatabaseIdsInputOutputSchema(BaseModel): + type: Literal["0#-datamodel-code-generator-#-object-#-special-#"] + ids: List[str] + """ + IDs of item to retrieve from db + """ + + +class DataIODatabaseCollectionInputOutputSchema(BaseModel): + type: Literal["1#-datamodel-code-generator-#-object-#-special-#"] + collection: str + """ + db collection name + """ + draft: bool + """ + whether the result should be saved as draft + """ + + +class ObjectStorageContainerData(BaseModel): + CONTAINER: Optional[str] = None + """ + Object storage container for the file + """ + NAME: Optional[str] = None + """ + Name of the file inside the object storage bucket + """ + PROVIDER: Optional[str] = None + """ + Object storage provider + """ + REGION: Optional[str] = None + """ + Region for the object container specified in Container + """ + SIZE: Optional[int] = None + """ + Size of the file in bytes + """ + TIMESTAMP: Optional[str] = None + """ + Unix timestamp showing when the file was last modified + """ + + +class ObjectStorageIoSchema(BaseModel): + type: Literal["2#-datamodel-code-generator-#-object-#-special-#"] + objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data") + overwrite: Optional[bool] = None + """ + if a file with the same filename already exists, whether to overwrite the old file + """ + pathname: Optional[str] = None + """ + Relative path to the directory that contains the file. + """ + basename: Optional[str] = None + """ + Basename of the file + """ + filetype: Optional[str] = None + """ + What kind of file this is, e.g. image / text + """ + + +class Input( + RootModel[ + Union[DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema] + ] +): + root: Union[ + DataIODatabaseIdsInputOutputSchema, DataIODatabaseCollectionInputOutputSchema, ObjectStorageIoSchema + ] = Field(..., discriminator="type") + + +class DataIOUnitMixinSchema(BaseModel): + type: Literal["io"] = "io" + subtype: Subtype + source: Source + input: List[Input] diff --git a/dist/py/workflow/unit/mixins/map.py b/dist/py/workflow/unit/mixins/map.py new file mode 100644 index 000000000..14dcbbd3d --- /dev/null +++ b/dist/py/workflow/unit/mixins/map.py @@ -0,0 +1,41 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/mixins/map.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Dict, List, Literal, Optional, Union + +from pydantic import BaseModel + + +class Input(BaseModel): + target: str + """ + Name of the target variable to substitute using the values below. e.g. K_POINTS + """ + scope: Optional[str] = None + """ + Scope to retrieve `values` from, global or flowchartId. Optional if `values` is given. + """ + name: Optional[str] = None + """ + Name of the variable inside the scope to retrieve `values` from. Optional if `values` is given. + """ + values: Optional[List[Union[str, float, Dict[str, Any]]]] = None + """ + Sequence of values for the target Jinja variable. Optional if `scope` and `name` are given. This can be used for map-reduce type parallel execution + """ + useValues: Optional[bool] = None + + +class MapUnitMixinSchema(BaseModel): + type: Literal["map"] = "map" + workflowId: str + """ + Id of workflow to run inside map + """ + input: Input + """ + Input information for map. + """ diff --git a/dist/py/workflow/unit/mixins/processing.py b/dist/py/workflow/unit/mixins/processing.py new file mode 100644 index 000000000..268c35d71 --- /dev/null +++ b/dist/py/workflow/unit/mixins/processing.py @@ -0,0 +1,25 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/mixins/processing.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Any, Literal + +from pydantic import BaseModel + + +class ProcessingUnitMixinSchema(BaseModel): + type: Literal["processing"] = "processing" + operation: str + """ + Contains information about the operation used. + """ + operationType: str + """ + Contains information about the specific type of the operation used. + """ + inputData: Any + """ + unit input (type to be specified by the child units) + """ diff --git a/dist/py/workflow/unit/mixins/reduce.py b/dist/py/workflow/unit/mixins/reduce.py new file mode 100644 index 000000000..431395813 --- /dev/null +++ b/dist/py/workflow/unit/mixins/reduce.py @@ -0,0 +1,32 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/mixins/reduce.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Literal + +from pydantic import BaseModel + + +class InputItem(BaseModel): + operation: str + """ + reduce operation, e.g. aggregate + """ + arguments: List[str] + """ + arguments which are passed to reduce operation function + """ + + +class ReduceUnitMixinSchema(BaseModel): + type: Literal["reduce"] = "reduce" + mapFlowchartId: str + """ + corresponding map unit flowchart ID + """ + input: List[InputItem] + """ + input information for reduce unit + """ diff --git a/dist/py/workflow/unit/mixins/subworkflow.py b/dist/py/workflow/unit/mixins/subworkflow.py new file mode 100644 index 000000000..8439eeb22 --- /dev/null +++ b/dist/py/workflow/unit/mixins/subworkflow.py @@ -0,0 +1,13 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/mixins/subworkflow.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Literal + +from pydantic import BaseModel + + +class SubworkflowUnitMixinSchema(BaseModel): + type: Literal["subworkflow"] = "subworkflow" diff --git a/dist/py/workflow/unit/processing.py b/dist/py/workflow/unit/processing.py new file mode 100644 index 000000000..d23fd90ee --- /dev/null +++ b/dist/py/workflow/unit/processing.py @@ -0,0 +1,113 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/processing.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import Any, List, Literal, Optional + +from pydantic import BaseModel, Field + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class ProcessingUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["processing"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + operation: str + """ + Contains information about the operation used. + """ + operationType: str + """ + Contains information about the specific type of the operation used. + """ + inputData: Any + """ + unit input (type to be specified by the child units) + """ diff --git a/dist/py/workflow/unit/reduce.py b/dist/py/workflow/unit/reduce.py new file mode 100644 index 000000000..2ff743f52 --- /dev/null +++ b/dist/py/workflow/unit/reduce.py @@ -0,0 +1,120 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/reduce.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Literal, Optional + +from pydantic import BaseModel, Field + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class InputItem(BaseModel): + operation: str + """ + reduce operation, e.g. aggregate + """ + arguments: List[str] + """ + arguments which are passed to reduce operation function + """ + + +class ReduceUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["reduce"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """ + mapFlowchartId: str + """ + corresponding map unit flowchart ID + """ + input: List[InputItem] + """ + input information for reduce unit + """ diff --git a/dist/py/workflow/unit/runtime/__init__.py b/dist/py/workflow/unit/runtime/__init__.py new file mode 100644 index 000000000..1f5385052 --- /dev/null +++ b/dist/py/workflow/unit/runtime/__init__.py @@ -0,0 +1,3 @@ +# generated by datamodel-codegen: +# filename: schema +# version: 0.28.5 diff --git a/dist/py/workflow/unit/runtime/_runtime_item_full_object.py b/dist/py/workflow/unit/runtime/_runtime_item_full_object.py new file mode 100644 index 000000000..829154953 --- /dev/null +++ b/dist/py/workflow/unit/runtime/_runtime_item_full_object.py @@ -0,0 +1,14 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/runtime/_runtime_item_full_object.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import BaseModel + + +class FullResultSchema(BaseModel): + name: str + """ + The name of this item. e.g. 'my_custom_property. ' + """ diff --git a/dist/py/workflow/unit/runtime/_runtime_item_name_object.py b/dist/py/workflow/unit/runtime/_runtime_item_name_object.py new file mode 100644 index 000000000..925a61d81 --- /dev/null +++ b/dist/py/workflow/unit/runtime/_runtime_item_name_object.py @@ -0,0 +1,14 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/runtime/_runtime_item_name_object.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import BaseModel + + +class NameResultSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ diff --git a/dist/py/workflow/unit/runtime/_runtime_item_string.py b/dist/py/workflow/unit/runtime/_runtime_item_string.py new file mode 100644 index 000000000..2d00f48ba --- /dev/null +++ b/dist/py/workflow/unit/runtime/_runtime_item_string.py @@ -0,0 +1,14 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/runtime/_runtime_item_string.json +# version: 0.28.5 + +from __future__ import annotations + +from pydantic import Field, RootModel + + +class RuntimeItemString(RootModel[str]): + root: str = Field(..., title="RuntimeItemString") + """ + name of runtime item in shortened notation + """ diff --git a/dist/py/workflow/unit/runtime/runtime_item.py b/dist/py/workflow/unit/runtime/runtime_item.py new file mode 100644 index 000000000..6bee30584 --- /dev/null +++ b/dist/py/workflow/unit/runtime/runtime_item.py @@ -0,0 +1,20 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/runtime/runtime_item.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import Union + +from pydantic import BaseModel, Field, RootModel + + +class NameResultSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class ESSE(RootModel[Union[NameResultSchema, str]]): + root: Union[NameResultSchema, str] = Field(..., title="runtime item schema") diff --git a/dist/py/workflow/unit/runtime/runtime_items.py b/dist/py/workflow/unit/runtime/runtime_items.py new file mode 100644 index 000000000..caf518e49 --- /dev/null +++ b/dist/py/workflow/unit/runtime/runtime_items.py @@ -0,0 +1,35 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/runtime/runtime_items.json +# version: 0.28.5 + +from __future__ import annotations + +from typing import List, Optional, Union + +from pydantic import BaseModel + + +class NameResultSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class RuntimeItemsSchemaPrePostProcessorsMonitorsResults(BaseModel): + preProcessors: Optional[List[Union[NameResultSchema, str]]] = None + """ + names of the pre-processors for this calculation + """ + postProcessors: Optional[List[Union[NameResultSchema, str]]] = None + """ + names of the post-processors for this calculation + """ + monitors: Optional[List[Union[NameResultSchema, str]]] = None + """ + names of the monitors for this calculation + """ + results: Optional[List[Union[NameResultSchema, str]]] = None + """ + names of the results for this calculation + """ diff --git a/dist/py/workflow/unit/subworkflow.py b/dist/py/workflow/unit/subworkflow.py new file mode 100644 index 000000000..8c440344c --- /dev/null +++ b/dist/py/workflow/unit/subworkflow.py @@ -0,0 +1,101 @@ +# generated by datamodel-codegen: +# filename: workflow/unit/subworkflow.json +# version: 0.28.5 + +from __future__ import annotations + +from enum import Enum +from typing import List, Literal, Optional + +from pydantic import BaseModel, Field + + +class RuntimeItemNameObjectSchema(BaseModel): + name: str + """ + The name of this item. e.g. scf_accuracy + """ + + +class Status(Enum): + idle = "idle" + active = "active" + warning = "warning" + error = "error" + finished = "finished" + + +class StatusTrackItem(BaseModel): + trackedAt: float + status: str + repetition: Optional[float] = None + + +class SubworkflowUnitSchema(BaseModel): + id: Optional[str] = Field(None, alias="_id") + """ + entity identity + """ + slug: Optional[str] = None + """ + entity slug + """ + systemName: Optional[str] = None + schemaVersion: Optional[str] = "2022.8.16" + """ + entity's schema version. Used to distinct between different schemas. + """ + name: str + """ + entity name + """ + isDefault: Optional[bool] = False + """ + Identifies that entity is defaultable + """ + preProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the pre-processors for this calculation + """ + postProcessors: List[RuntimeItemNameObjectSchema] + """ + names of the post-processors for this calculation + """ + monitors: List[RuntimeItemNameObjectSchema] + """ + names of the monitors for this calculation + """ + results: List[RuntimeItemNameObjectSchema] + """ + names of the results for this calculation + """ + tags: Optional[List[str]] = None + """ + entity tags + """ + status: Optional[Status] = None + """ + Status of the unit. + """ + statusTrack: Optional[List[StatusTrackItem]] = None + isDraft: Optional[bool] = None + type: Literal["subworkflow"] + """ + type of the unit + """ + head: Optional[bool] = None + """ + Whether this unit is the first one to be executed. + """ + flowchartId: str + """ + Identity of the unit in the workflow. Used to trace the execution flow of the workflow. + """ + next: Optional[str] = None + """ + Next unit's flowchartId. If empty, the current unit is the last. + """ + enableRender: Optional[bool] = None + """ + Whether Rupy should attempt to use Jinja templating to add context variables into the unit + """